aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Core
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Core')
-rw-r--r--lib/Core/ExecutionState.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/Core/ExecutionState.cpp b/lib/Core/ExecutionState.cpp
index 54fe752e..5231f7fb 100644
--- a/lib/Core/ExecutionState.cpp
+++ b/lib/Core/ExecutionState.cpp
@@ -327,18 +327,22 @@ void ExecutionState::dumpStack(llvm::raw_ostream &out) const {
std::stringstream AssStream;
AssStream << std::setw(8) << std::setfill('0') << ii.assemblyLine;
out << AssStream.str();
- out << " in " << f->getName().str() << " (";
+ out << " in " << f->getName().str() << "(";
// Yawn, we could go up and print varargs if we wanted to.
unsigned index = 0;
for (Function::arg_iterator ai = f->arg_begin(), ae = f->arg_end();
ai != ae; ++ai) {
if (ai!=f->arg_begin()) out << ", ";
- out << ai->getName().str();
- // XXX should go through function
+ if (ai->hasName())
+ out << ai->getName().str() << "=";
+
ref<Expr> value = sf.locals[sf.kf->getArgRegister(index++)].value;
- if (isa_and_nonnull<ConstantExpr>(value))
- out << "=" << value;
+ if (isa_and_nonnull<ConstantExpr>(value)) {
+ out << value;
+ } else {
+ out << "symbolic";
+ }
}
out << ")";
if (ii.file != "")