c++中实现类似java printStackTrac…

本文介绍如何在C++中实现类似Java的printStackTrace功能,通过使用StackWalk系列函数(Windows)和backtrace系列函数(Linux),实现跨平台的异常栈信息获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在程序中使用异常的时候,最怀念的莫过于java中的printStackTrace功能了。在c++里面能否实现一样的功能呢?
    搜索sourceforge,还真发现有一个stacktrace项目针对该问题。解决方案就是在windows下使用StackWalk系列函数,在linux下使用backtrace系列函数来访问函数栈信息。测试后发现能用。于是很快乐地盗版、编译、运行。
    Linux下打印的消息比较少,凑合用吧。不过实现起来也很简单。
    Windows下打印的消息挺详尽的,相关代码挺复杂的,如果没有盗版,自己实现还是要花一番功夫的。另外,发现如果源码存放路径中有中文。编译后运行无法获取栈信息。如果源码存放路径不含中文,编译完将可执行文件复制到中文目录下,还是可以获取栈信息的。再次告诉我们,不要将源码放在中文路径下,不然容易遭遇灵异现象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值