Debugging 这是gdb非停止模式自动化的问题设计吗?

Debugging 这是gdb非停止模式自动化的问题设计吗?,debugging,scripting,gdb,breakpoints,gdbinit,Debugging,Scripting,Gdb,Breakpoints,Gdbinit,我在.gdbinit文件中实现了这段代码,以使停止需要gdb命令(如x、set等)起作用 $pince_debugging_mode变量的目的是通知gdb程序是否出于调试目的中断目标 我担心这种设计的信号并发性:假设我们在一个地址上放置了一个断点,在等待它被触发时,我们想用x命令检查一些地址。执行x命令后,将执行hook stop,因为我们已经用x命令停止了线程。假设在执行hook post时已到达断点,但hook stop没有意识到这一点,并且$pince\u debugation\u mod

我在.gdbinit文件中实现了这段代码,以使停止需要gdb命令(如x、set等)起作用

$pince_debugging_mode
变量的目的是通知gdb程序是否出于调试目的中断目标

我担心这种设计的信号并发性:假设我们在一个地址上放置了一个断点,在等待它被触发时,我们想用x命令检查一些地址。执行x命令后,将执行hook stop,因为我们已经用x命令停止了线程。假设在执行hook post时已到达断点,但hook stop没有意识到这一点,并且
$pince\u debugation\u mode
仍然等于0,因此它将执行
c&
命令,目标将继续。因此,由于这个并发性问题,在断点处停止并不意味着什么

这个问题从未发生过,但我担心发生的可能性,即使可能性很低,我也不想冒险。我能做些什么来避免这个可能的问题

注意:定义hookpost-x是有问题的,因为每当x命令抛出异常时,都不会执行hookpost,因此在抛出异常x命令后将无法继续

define hook-x
  if $pince_debugging_mode == 0
    interrupt
  end
end

define hook-stop
  if $pince_debugging_mode == 0
    c &
  end
end