Loops gdb:循环中的SIGFPE
我有一个信号在循环中发生。如果我设置了一个断点,或者用stop、nopass等来处理SIGFPE,我会在这一行之后释放帧变量。在断点的情况下,我需要首先执行Loops gdb:循环中的SIGFPE,loops,gdb,sigfpe,Loops,Gdb,Sigfpe,我有一个信号在循环中发生。如果我设置了一个断点,或者用stop、nopass等来处理SIGFPE,我会在这一行之后释放帧变量。在断点的情况下,我需要首先执行n,其中n是一个很大的数字,以便循环在断点上运行,直到发出SIGFPE为止。在通过句柄或断点执行之后,我释放了帧变量,因此无法反向搜索和进一步调试程序(上下文外的变量) 如何快速处理循环中的SIGFPE 谢谢 新信息:是否可以使用逻辑观察点停止程序?我进入了负责任的框架,发现所讨论的变量的值为350(应该远小于零)。为什么不呢 watch x
n
,其中n
是一个很大的数字,以便循环在断点上运行,直到发出SIGFPE为止。在通过句柄或断点执行之后,我释放了帧变量,因此无法反向搜索和进一步调试程序(上下文外的变量)
如何快速处理循环中的SIGFPE
谢谢
新信息:是否可以使用逻辑观察点停止程序?我进入了负责任的框架,发现所讨论的变量的值为350(应该远小于零)。为什么不呢
watch x0 > 100
在这一点上停止执行 您以错误的方式使用
手表
watch expr
为表达式设置观察点。当程序写入expr且其值更改时,GDB将中断
因此,您不能查看x0>100
,但可以查看x0
,或数组[59]
(手表的参数是内存中的地址)
对于任务,可以使用条件中断
中断。。。如果条件
用条件cond设置断点;每次到达断点时计算表达式cond,并且仅当值非零时停止——也就是说,如果cond的计算结果为true表示上述可能的参数之一(或无参数),指定在何处中断。有关断点条件的更多信息,请参见“中断条件”一节
所以
不知道sigfpe和“无回溯”,但可以推荐使用“-O0-g”
break main.c:345 if x0>100