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.cc30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc
index 8ab1fcb0..19bebbcd 100644
--- a/src/binary-reader-objdump.cc
+++ b/src/binary-reader-objdump.cc
@@ -46,6 +46,8 @@ class BinaryReaderObjdumpBase : public BinaryReaderNop {
BinarySection section_code,
StringSlice section_name);
protected:
+ const char* GetFunctionName(uint32_t index);
+
ObjdumpOptions* options = nullptr;
const uint8_t* data = nullptr;
size_t size = 0;
@@ -108,6 +110,14 @@ Result BinaryReaderObjdumpBase::BeginModule(uint32_t version) {
return Result::Ok;
}
+const char* BinaryReaderObjdumpBase::GetFunctionName(uint32_t index) {
+ if (index >= options->function_names.size() ||
+ options->function_names[index].empty())
+ return nullptr;
+
+ return options->function_names[index].c_str();
+}
+
Result BinaryReaderObjdumpBase::OnRelocCount(uint32_t count,
BinarySection section_code,
StringSlice section_name) {
@@ -177,7 +187,6 @@ class BinaryReaderObjdumpDisassemble : public BinaryReaderObjdumpBase {
private:
void LogOpcode(const uint8_t* data, size_t data_size, const char* fmt, ...);
- const char* GetFunctionName(uint32_t index);
Opcode current_opcode = Opcode::Unreachable;
size_t current_opcode_offset = 0;
@@ -347,14 +356,6 @@ Result BinaryReaderObjdumpDisassemble::OnEndExpr() {
return Result::Ok;
}
-const char* BinaryReaderObjdumpDisassemble::GetFunctionName(uint32_t index) {
- if (index >= options->function_names.size() ||
- options->function_names[index].empty())
- return nullptr;
-
- return options->function_names[index].c_str();
-}
-
Result BinaryReaderObjdumpDisassemble::BeginFunctionBody(uint32_t index) {
const char* name = GetFunctionName(index);
if (name)
@@ -729,9 +730,14 @@ Result BinaryReaderObjdump::OnExport(uint32_t index,
ExternalKind kind,
uint32_t item_index,
StringSlice name) {
- PrintDetails(" - %s[%d] ", get_kind_name(kind), item_index);
- PrintDetails(PRIstringslice, WABT_PRINTF_STRING_SLICE_ARG(name));
- PrintDetails("\n");
+ PrintDetails(" - %s[%d]", get_kind_name(kind), item_index);
+ if (kind == ExternalKind::Func) {
+ if (const char* name = GetFunctionName(item_index))
+ PrintDetails(" <%s>", name);
+ }
+
+ PrintDetails(" -> \"" PRIstringslice "\"\n",
+ WABT_PRINTF_STRING_SLICE_ARG(name));
return Result::Ok;
}