linux C++中输出debug和trace信息
2012-05-06 21:20
197 查看
(这里指LINUX G++环境)
一,三个重要的宏:
1 __LINE__ 当前的行号
2 __FILE__ 当前的文件名(xxx.cpp)
3 __PRETTY_FUNCTION__/__FUNCTION__ 带签名和不带签名的函数名
二,打印stack trace
通过两个函数:
backtrace();
backtrace_symbols();
需要 -g -rdynamic 参数
编译和输出
:!g++ -Wall -g -rdynamic ddd.cpp;./a.out
35
ddd.cpp
int main(int, char**)
Obtained 5 stack frames.
./a.out(_Z11print_tracev+0x16) [0x40090e]
./a.out(_Z4testv+0x9) [0x40098d]
./a.out(main+0x50) [0x4009e0]
/lib64/tls/libc.so.6(__libc_start_main+0xdb) [0x302af1c4bb]
./a.out(__gxx_personality_v0+0x42) [0x40086a]
本文出自 “木又寸的技术博客” 博客,转载请与作者联系!
一,三个重要的宏:
1 __LINE__ 当前的行号
2 __FILE__ 当前的文件名(xxx.cpp)
3 __PRETTY_FUNCTION__/__FUNCTION__ 带签名和不带签名的函数名
二,打印stack trace
通过两个函数:
backtrace();
backtrace_symbols();
需要 -g -rdynamic 参数
#include <stdio.h> #include <exception> #include "string.h" #include "stdlib.h" #include <execinfo.h> void print_trace(); void test(); void print_trace (void) { void *array[10]; size_t size; char **strings; size_t i; size = backtrace (array, 10); strings = backtrace_symbols (array, size); printf ("Obtained %zd stack frames.\n", size); for (i = 0; i < size; i++) printf ("%s\n", strings[i]); free (strings); } void test() { print_trace(); } int main(int argc, char *argv[]) { printf("%d\n", __LINE__); printf("%s\n", __FILE__); printf("%s\n", __PRETTY_FUNCTION__); test(); return 0; }
编译和输出
:!g++ -Wall -g -rdynamic ddd.cpp;./a.out
35
ddd.cpp
int main(int, char**)
Obtained 5 stack frames.
./a.out(_Z11print_tracev+0x16) [0x40090e]
./a.out(_Z4testv+0x9) [0x40098d]
./a.out(main+0x50) [0x4009e0]
/lib64/tls/libc.so.6(__libc_start_main+0xdb) [0x302af1c4bb]
./a.out(__gxx_personality_v0+0x42) [0x40086a]
本文出自 “木又寸的技术博客” 博客,转载请与作者联系!
相关文章推荐
- C#将Trace,Debug信息输出到控件上
- 使用OutputDebugString输出调试信息,使用DebugWindow来捕获它
- Salesforce Apex Class 的Debug信息输出
- 在手机上调试,输出Debug信息到计算机
- MFC中的控制台输出debug信息
- 将C++调试信息显示在VS输出窗口中, 像TRACE一样调用
- 使用log4j的时候如何输出printStackTrace()的堆栈信息
- Release下支持调试信息的打印,Debug_Trace的实现
- Debug模式应用程序输出Debug调试信息
- log4net 打印调试信息到 Visval Studio 调试输出窗口; output debug infomation to output window
- 设置调试PHP,debug php输出所有错误信息
- 提供一个Qml 真机debug信息输出组件
- Mybatis整合spring的时候用log4j输出sql信息的debug设置
- 让 IPhone 程序的调试信息只在 debug 模式下输出 转自:hager的博客
- 使用OutputDebugString将调试信息输出
- 写一个把调试信息输出到磁盘文件的DEBUG程序
- 程序中输出不定项参数的trace信息之解决方法
- C# DEBUG 调试信息打印及输出详解
- 如何把Windows Phone的debug信息输出到Visual Studio的Output窗口
- Logback在配置中不能正确输出debug信息的解决