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>
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
# create a breakpoint on `debugutils.enteringDebugSection`
|
|
define enable_enteringDebugSection
|
|
break -function enteringDebugSection
|
|
# run these commands once breakpoint enteringDebugSection is hit
|
|
command
|
|
# enable all breakpoints and watchpoints
|
|
enable
|
|
# continue execution
|
|
cont
|
|
end
|
|
end
|
|
|
|
# create a breakpoint on `debugutils.exitingDebugSection` named exitingDebugSection
|
|
define enable_exitingDebugSection
|
|
break -function exitingDebugSection
|
|
# run these commands once breakpoint exitingDebugSection is hit
|
|
command
|
|
# disable all breakpoints and watchpoints
|
|
disable
|
|
# but enable the enteringDebugSection breakpoint
|
|
enable_enteringDebugSection
|
|
# continue execution
|
|
cont
|
|
end
|
|
end
|
|
|
|
# some commands can't be set until the process is running, so set an entry breakpoint
|
|
break -function NimMain
|
|
# run these commands once breakpoint NimMain is hit
|
|
command
|
|
# disable all breakpoints and watchpoints
|
|
disable
|
|
# but enable the enteringDebugSection breakpoint
|
|
enable_enteringDebugSection
|
|
# no longer need this breakpoint
|
|
delete -function NimMain
|
|
# continue execution
|
|
cont
|
|
end
|