summaryrefslogtreecommitdiff
path: root/src/binary-reader-objdump.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r--src/binary-reader-objdump.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc
index 64e11d78..ddd2d7b9 100644
--- a/src/binary-reader-objdump.cc
+++ b/src/binary-reader-objdump.cc
@@ -273,8 +273,11 @@ class BinaryReaderObjdumpPrepass : public BinaryReaderObjdumpBase {
ExternalKind kind,
Index item_index,
string_view name) override {
- if (kind == ExternalKind::Func)
+ if (kind == ExternalKind::Func) {
SetFunctionName(item_index, name);
+ } else if (kind == ExternalKind::Global) {
+ SetGlobalName(item_index, name);
+ }
return Result::Ok;
}
@@ -480,9 +483,21 @@ void BinaryReaderObjdumpDisassemble::LogOpcode(size_t data_size,
if (fmt) {
printf(" ");
va_list args;
+ va_list args_copy;
va_start(args, fmt);
+ va_copy(args_copy, args);
vprintf(fmt, args);
va_end(args);
+
+ if (current_opcode == Opcode::GetGlobal ||
+ current_opcode == Opcode::SetGlobal) {
+ int global_index = va_arg(args_copy, int);
+ if (const char* name = GetGlobalName(global_index)) {
+ printf(" <%s>", name);
+ }
+ }
+
+ va_end(args_copy);
}
}