================ @@ -0,0 +1,87 @@ +""" +Defines a command, fdis, that does filtered disassembly. The command does the +lldb disassemble command with -b and any other arguments passed in, and +pipes that through a provided filter program. + +The intention is to support disassembly of RISC-V proprietary instructions. +This is handled with llvm-objdump by piping the output of llvm-objdump through +a filter program. This script is intended to mimic that workflow. +""" + +import lldb +import subprocess + +filter_program = "crustfilt" + +def __lldb_init_module(debugger, dict): + debugger.HandleCommand( + 'command script add -f filter_disasm.fdis fdis') + print("Disassembly filter command (fdis) loaded") + print("Filter program set to %s" % filter_program) + + +def fdis(debugger, args, result, dict): ---------------- tedwoodward wrote:
The triple-quote text at the start does that. (lldb) command script import /local/mnt/workspace/ted/my_upstream/llvm-project/lldb/examples/python/filter_disasm.py Disassembly filter command (fdis) loaded Filter program set to crustfilt (lldb) help fdis For more information run 'help fdis' Expects 'raw' input (see 'help raw-input'.) Syntax: fdis Call the built in disassembler, then pass its output to a filter program to add in disassembly for hidden opcodes. Except for get and set, use the fdis command like the disassemble command. By default, the filter program is crustfilt, from https://github.com/quic/crustfilt . This can be changed by changing the global variable filter_program. Usage: fdis [[get] [set <program>] [<disassembly options>]] Choose one of the following: get Gets the current filter program set <program> Sets the current filter program. This can be an executable, which will be found on PATH, or an absolute path. <disassembly options> If the first argument is not get or set, the args will be passed to the disassemble command as is. https://github.com/llvm/llvm-project/pull/145793 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits