diff options
author | Sam Clegg <sbc@chromium.org> | 2017-05-11 16:25:55 -0700 |
---|---|---|
committer | Ben Smith <binjimin@gmail.com> | 2017-05-11 16:25:55 -0700 |
commit | 84c25f09386baca162a60eb8398542182d45e5c6 (patch) | |
tree | 5b43dec4014da7e340de93d50e7606e103ff32ea /src/binary-reader-objdump.cc | |
parent | 18b643dfffbc2eb5679155dc8fcf10a1f1468646 (diff) | |
download | wabt-84c25f09386baca162a60eb8398542182d45e5c6.tar.gz wabt-84c25f09386baca162a60eb8398542182d45e5c6.tar.bz2 wabt-84c25f09386baca162a60eb8398542182d45e5c6.zip |
[wasmdump] Make export section more readable (#430)
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r-- | src/binary-reader-objdump.cc | 30 |
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; } |