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