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异常:

捕系统调用:

posted @ 2024-01-14 23:46  TechNomad  阅读(24)  评论(0编辑  收藏  举报