summaryrefslogtreecommitdiff
path: root/src/tools/wasmdump.c
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2017-01-23 11:18:54 -0800
committerGitHub <noreply@github.com>2017-01-23 11:18:54 -0800
commit5a658b3f2b90cce2bb3d81994828d29b74e41958 (patch)
tree3c699b33173c95875a7a0a474456b438c02b29f7 /src/tools/wasmdump.c
parenta6a3ff9398e06690081d8d41353ad3715ee19e7a (diff)
downloadwabt-5a658b3f2b90cce2bb3d81994828d29b74e41958.tar.gz
wabt-5a658b3f2b90cce2bb3d81994828d29b74e41958.tar.bz2
wabt-5a658b3f2b90cce2bb3d81994828d29b74e41958.zip
Add function names and relocations to wasmdump disassembly (#285)
Diffstat (limited to 'src/tools/wasmdump.c')
-rw-r--r--src/tools/wasmdump.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/tools/wasmdump.c b/src/tools/wasmdump.c
index a9452f8f..9ee96828 100644
--- a/src/tools/wasmdump.c
+++ b/src/tools/wasmdump.c
@@ -38,6 +38,7 @@ enum {
FLAG_DISASSEMBLE,
FLAG_DEBUG,
FLAG_DETAILS,
+ FLAG_RELOCS,
FLAG_HELP,
NUM_FLAGS
};
@@ -56,6 +57,8 @@ static WasmOption s_options[] = {
"disassemble function bodies"},
{FLAG_DEBUG, '\0', "debug", NULL, NOPE, "disassemble function bodies"},
{FLAG_DETAILS, 'x', "details", NULL, NOPE, "Show section details"},
+ {FLAG_RELOCS, 'r', "reloc", NULL, NOPE,
+ "show relocations inline with disassembly"},
{FLAG_HELP, 'h', "help", NULL, NOPE, "print this help message"},
};
@@ -90,6 +93,10 @@ static void on_option(struct WasmOptionParser* parser,
s_objdump_options.details = WASM_TRUE;
break;
+ case FLAG_RELOCS:
+ s_objdump_options.relocs = WASM_TRUE;
+ break;
+
case FLAG_SECTION:
s_objdump_options.section_name = argument;
break;
@@ -157,6 +164,11 @@ int main(int argc, char** argv) {
return 1;
}
+ s_objdump_options.mode = WASM_DUMP_PREPASS;
+ result = wasm_read_binary_objdump(allocator, data, size, &s_objdump_options);
+ if (WASM_FAILED(result))
+ goto done;
+
// Pass 1: Print the section headers
if (s_objdump_options.headers) {
s_objdump_options.mode = WASM_DUMP_HEADERS;