================
@@ -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

Reply via email to