summaryrefslogtreecommitdiff
path: root/src/binary-reader-objdump.cc
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2017-05-11 16:25:55 -0700
committerBen Smith <binjimin@gmail.com>2017-05-11 16:25:55 -0700
commit84c25f09386baca162a60eb8398542182d45e5c6 (patch)
tree5b43dec4014da7e340de93d50e7606e103ff32ea /src/binary-reader-objdump.cc
parent18b643dfffbc2eb5679155dc8fcf10a1f1468646 (diff)
downloadwabt-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.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;
}