调试
pzc105
这个作者很懒,什么都没留下…
展开
-
有返回值的函数函数结尾没返回值在clang+llvm下的异常
以下代码用clang++编译#include <stdio.h>int func(){ printf("");}int main(){ func(); return 0;}接着用GDB调试程序,输入r运行程序,出现Program received signal SIGILL, Illegal instruction.执行display /i $pc,发现程序因为执行ud2指令而异常终结。=> 0x4011c5 <_Z4funcv+21>:原创 2020-11-18 17:41:14 · 314 阅读 · 0 评论 -
GDB调试二
GDB调试一catchpointscatch event 生成一个断点,当event发生时,停止程序运行。event可以是以下命令之一:throw [regexp]rethrow [regexp]catch [regexp]捕捉C++异常,当异常名跟正则表达式regexp匹配时,程序停止运行。exec当调用exec家族函数时,程序停止运行fork当调用fork函数时,程序停止运行vfork当调用vfork函数时,程序停止运行load [regexp]unlo原创 2020-10-27 11:10:41 · 322 阅读 · 0 评论 -
GDB调试一
GDB调试一breakpointsbreakpoints可以用break命令设置,内置变量bpnum记录了当前设置的断点号;每次设置断点时,GDB会赋当前最大max_breakpoint_num+1给bpnum记录了当前设置的断点号;每次设置断点时,GDB会赋当前最大max\_breakpoint\_num+1给bpnum记录了当前设置的断点号;每次设置断点时,GDB会赋当前最大max_breakpoint_num+1给bpnum。infos breakpoints可以查看所有的断点。break原创 2020-10-23 17:40:46 · 101 阅读 · 0 评论