mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
* Add two debugutils procs that native debuggers can break on use to execute commands when code of interest is being compiled. * Add GDB and LLDB programs to disable and enable breakpoints and watchpoints when code of interest is being compiled. * Extend the `intern.rst` docs regarding debugging the compiler. Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
41 lines
1.4 KiB
Plaintext
41 lines
1.4 KiB
Plaintext
# create a breakpoint on `debugutils.enteringDebugSection` named enteringDebugSection
|
|
breakpoint set -n 'enteringDebugSection' -N enteringDebugSection
|
|
# run these commands once breakpoint enteringDebugSection is hit
|
|
breakpoint command add enteringDebugSection
|
|
# enable all breakpoints
|
|
breakpoint enable
|
|
# enable all watchpoints
|
|
# watchpoint enable # FIXME: not currently working for unknown reason
|
|
# continue execution
|
|
continue
|
|
DONE
|
|
|
|
# create a breakpoint on `debugutils.exitingDebugSection` named exitingDebugSection
|
|
breakpoint set -n 'exitingDebugSection' -N exitingDebugSection
|
|
# run these commands once breakpoint exitingDebugSection is hit
|
|
breakpoint command add exitingDebugSection
|
|
# disable all breakpoints
|
|
breakpoint disable
|
|
# disable all watchpoints
|
|
# watchpoint disable # FIXME: not currently working for unknown reason
|
|
breakpoint enable enteringDebugSection
|
|
# continue execution
|
|
continue
|
|
DONE
|
|
|
|
# some commands can't be set until the process is running, so set an entry breakpoint
|
|
breakpoint set -n NimMain -N NimMain
|
|
# run these commands once breakpoint NimMain is hit
|
|
breakpoint command add NimMain
|
|
# disable all breakpoints
|
|
breakpoint disable
|
|
# disable all watchpoints
|
|
# watchpoint disable # FIXME: not currently working for unknown reason
|
|
# enable the enteringDebugSection breakpoint though
|
|
breakpoint enable enteringDebugSection
|
|
# no longer need this breakpoint
|
|
breakpoint delete NimMain
|
|
# continue execution
|
|
continue
|
|
DONE
|