diff options
author | Alex Coplan <alex.coplan@arm.com> | 2024-08-05 08:45:29 +0100 |
---|---|---|
committer | Alex Coplan <alex.coplan@arm.com> | 2024-08-05 08:45:29 +0100 |
commit | 08cc516a8cfe553064f84a86be4c30f05a614342 (patch) | |
tree | 8f4cdef64d4fca72aca3adc284ed13b06fc3c693 /gcc/gdbhooks.py | |
parent | 1a5734135d265a7b363ead9f821676a2a358969b (diff) | |
download | gcc-08cc516a8cfe553064f84a86be4c30f05a614342.zip gcc-08cc516a8cfe553064f84a86be4c30f05a614342.tar.gz gcc-08cc516a8cfe553064f84a86be4c30f05a614342.tar.bz2 |
gdbhooks: Make dot viewer configurable
This adds a new GDB parameter 'gcc-dot-cmd' which allows the user to
configure the command used to render the CFG within dot-fn.
E.g. with this patch the user can change their dot viewer like so:
(gdb) show gcc-dot-cmd
The current value of 'gcc-dot-cmd' is "dot -Tx11".
(gdb) set gcc-dot-cmd xdot
(gdb) dot-fn # opens in xdot
The second patch in this series adds a hook which users can define in
their .gdbinit in order to be called when the GCC extensions have
finished loading, thus allowing users to automatically configure
gcc-dot-cmd as desired in their .gdbinit.
gcc/ChangeLog:
* gdbhooks.py (GCCDotCmd): New.
(gcc_dot_cmd): New. Use it ...
(DotFn.invoke): ... here.
Diffstat (limited to 'gcc/gdbhooks.py')
-rw-r--r-- | gcc/gdbhooks.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/gdbhooks.py b/gcc/gdbhooks.py index 92e3888..db8ce0d 100644 --- a/gcc/gdbhooks.py +++ b/gcc/gdbhooks.py @@ -783,6 +783,18 @@ class DumpFn(gdb.Command): DumpFn() +class GCCDotCmd(gdb.Parameter): + """ + This parameter controls the command used to render dot files within + GCC's dot-fn command. It will be invoked as gcc-dot-cmd <dot-file>. + """ + def __init__(self): + super(GCCDotCmd, self).__init__('gcc-dot-cmd', + gdb.COMMAND_NONE, gdb.PARAM_STRING) + self.value = "dot -Tx11" + +gcc_dot_cmd = GCCDotCmd() + class DotFn(gdb.Command): """ A custom command to show a gimple/rtl function control flow graph. @@ -848,7 +860,8 @@ class DotFn(gdb.Command): return # Show graph in temp file - os.system("( dot -Tx11 \"%s\"; rm \"%s\" ) &" % (filename, filename)) + dot_cmd = gcc_dot_cmd.value + os.system("( %s \"%s\"; rm \"%s\" ) &" % (dot_cmd, filename, filename)) DotFn() |