GDB调试之捕获点的使用(十)
一、什么是捕获点
捕获点是一个特殊的断点,命令语法为:catch event,即捕获到event这个事件的时候,程序就会中断下来。
测试代码示例如下:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>
#include <cstring>
#include <thread>
using namespace std;
int test_fun(int num)
{
if(num ==0)
throw "num is 0";
int x = 100 / num;
cout << x << endl;
return x;
}
void test_file()
{
int fd = open("main.d",O_RDWR);
if(fd != 0)
{
close(fd);
}
}
int main(int argc,char** argv)
{
test_file();
try
{
test_fun(0);
}
catch(const char* error_msg)
{
cout << error_msg << endl;
}
test_file();
return 0;
}
二、捕获常见异常
catch捕获throw异常:

catch捕获catch异常:

捕系统调用:


浙公网安备 33010602011771号