about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorMartin Nowack <m.nowack@imperial.ac.uk>2019-12-19 14:54:51 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2020-01-13 13:13:49 +0000
commit1f90406ac0cdb8ad04013e163b0fa0be336a36ee (patch)
tree53ced9be2a7e70ec519cf9c6baa6ca31dd4cdb41
parent2b1abab826bbfb20b2f86cbf7f15c98b13439299 (diff)
downloadklee-1f90406ac0cdb8ad04013e163b0fa0be336a36ee.tar.gz
Assume assembly.ll is local to the run.istats file
Assuming a `klee-out-*` directory is moved to a different path location, subsequent analysis of the run.istats with KCachegrind focusing on assembly is impossible as the `assembly.ll` cannot be found.
The reason is that the absolute path of the object file (assembly.ll) is hard-coded as part of the generated run.istats.

To fix this, assume that the file is local to the `run.istats`.
-rw-r--r--lib/Core/StatsTracker.cpp2
-rw-r--r--test/Feature/SourceMapping.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/Core/StatsTracker.cpp b/lib/Core/StatsTracker.cpp
index 51181db0..d445eb2a 100644
--- a/lib/Core/StatsTracker.cpp
+++ b/lib/Core/StatsTracker.cpp
@@ -639,7 +639,7 @@ void StatsTracker::writeIStats() {
   if (UseCallPaths)
     callPathManager.getSummaryStatistics(callSiteStats);
 
-  of << "ob=" << objectFilename << "\n";
+  of << "ob=" << llvm::sys::path::filename(objectFilename).str() << "\n";
 
   for (Module::iterator fnIt = m->begin(), fn_ie = m->end(); 
        fnIt != fn_ie; ++fnIt) {
diff --git a/test/Feature/SourceMapping.c b/test/Feature/SourceMapping.c
index 30a9c2a8..6a071933 100644
--- a/test/Feature/SourceMapping.c
+++ b/test/Feature/SourceMapping.c
@@ -7,7 +7,7 @@
 // RUN: FileCheck < %t.klee-out/run.istats %s
 
 // CHECK: positions: instr line
-// CHECK: ob={{.*}}/SourceMapping.c{{.*}}/assembly.ll
+// CHECK: ob=assembly.ll
 
 // Assuming the compiler doesn't reorder things, f0 should be first, and it
 // should immediately follow the first file name marker.