diff options
-rw-r--r-- | tools/nim-gdb.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/nim-gdb.py b/tools/nim-gdb.py index 2abaf6926..b6481a99d 100644 --- a/tools/nim-gdb.py +++ b/tools/nim-gdb.py @@ -168,6 +168,60 @@ class DollarPrintCmd (gdb.Command): DollarPrintCmd() + +################################################################################ +##### GDB Commands to invoke common nim tools. +################################################################################ + + +import subprocess, os + + +class KochCmd (gdb.Command): + """Command that invokes ``koch'', the build tool for the compiler.""" + + def __init__ (self): + super (KochCmd, self).__init__ ("koch", + gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.binary = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "koch") + + def invoke(self, argument, from_tty): + import os + subprocess.run([self.binary] + gdb.string_to_argv(argument)) + +KochCmd() + + +class NimCmd (gdb.Command): + """Command that invokes ``nim'', the nim compiler.""" + + def __init__ (self): + super (NimCmd, self).__init__ ("nim", + gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.binary = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "bin/nim") + + def invoke(self, argument, from_tty): + subprocess.run([self.binary] + gdb.string_to_argv(argument)) + +NimCmd() + + +class NimbleCmd (gdb.Command): + """Command that invokes ``nimble'', the nim package manager and build tool.""" + + def __init__ (self): + super (NimbleCmd, self).__init__ ("nimble", + gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.binary = os.path.join( + os.path.dirname(os.path.dirname(__file__)), "bin/nimble") + + def invoke(self, argument, from_tty): + subprocess.run([self.binary] + gdb.string_to_argv(argument)) + +NimbleCmd() + ################################################################################ ##### Value pretty printers ################################################################################ |