Google日志不打印堆栈跟踪
Google glog prints no stack trace
我正在为我的c++程序使用google的glog库。我以前使用过glog库,所以我知道当出现CHECK失败时,它应该打印出堆栈跟踪。但是它不为我的程序打印任何堆栈跟踪:
#include <glog/logging.h>
void bar(int x) {
CHECK_EQ(x, 1);
}
void foo(int x) {
bar(x + 1);
}
int main() {
foo(1);
}
Makefile是
all: Makefile test.cpp
g++ -g -O3 test.cpp -lglog -o test
我得到的输出是
$ ./test
WARNING: Logging before InitGoogleLogging() is written to STDERR
F0629 14:09:45.900789 37730 test.cpp:4] Check failed: x == 1 (2 vs. 1)
*** Check failure stack trace: ***
Aborted
我错过了什么吗?
谢谢!
崔如果我想打印堆栈跟踪,我应该首先调用InstallFailureSignalHandler()
函数来初始化glog。所以固定的程序是:
#include <glog/logging.h>
void bar(int x) {
CHECK_EQ(x, 1);
}
void foo(int x) {
bar(x + 1);
}
int main(int argc, char** argv) {
google::InstallFailureSignalHandler();
foo(1);
}
输出为:
$ ./test
WARNING: Logging before InitGoogleLogging() is written to STDERR
F0708 09:15:35.401262 44752 test.cpp:4] Check failed: x == 1 (2 vs. 1)
*** Check failure stack trace: ***
*** Aborted at 1467990935 (unix time) try "date -d @1467990935" if you are using GNU date ***
PC: @ 0x7f3c96566f89 (unknown)
*** SIGABRT (@0x275c0000aed0) received by PID 44752 (TID 0x7f3c9725b780) from PID 44752; stack trace: ***
@ 0x7f3c96567000 (unknown)
@ 0x7f3c96566f89 (unknown)
@ 0x7f3c9656a398 (unknown)
@ 0x7f3c96e28d81 (unknown)
@ 0x7f3c96e28daa (unknown)
@ 0x7f3c96e28ce4 (unknown)
@ 0x7f3c96e286e6 (unknown)
@ 0x7f3c96e2b687 (unknown)
@ 0x400d80 bar()
@ 0x400dab foo()
@ 0x400dcb main
@ 0x7f3c96551ec5 (unknown)
@ 0x400c39 (unknown)
@ 0x0 (unknown)
Aborted
相关文章:
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 提升堆栈跟踪不显示函数名称和行号
- cygwin_exception::open_stackdumpfile:将堆栈跟踪转储到 class4.exe.sta
- 如何按指针查看堆栈跟踪
- WinDbg 不显示某些小型转储文件的完整堆栈跟踪
- 发布代码的 gdb 堆栈跟踪可读性如何影响 x64?
- 提升::堆栈跟踪::safe_dump_to输出大小
- Qt 5.9中的QML崩溃-帮助读取堆栈跟踪
- 如何获取崩溃的DLL的堆栈跟踪?
- 当外部源代码中发生异常时,无法正确使用自创建的小型转储文件的堆栈跟踪
- 在 Linux 平台上以 C/C++ 打印进程的所有线程堆栈跟踪
- Boost 堆栈跟踪异步信号安全吗?
- 使用 gdb 时无法获取堆栈跟踪
- VC++ 堆栈跟踪不会解析生产环境中的函数名称
- 从堆栈跟踪中查找共享库中的源代码行
- 捕获异常后的堆栈跟踪
- 是否有一种便携式/标准的方法可以在堆栈跟踪中获取文件名和亚麻布
- 为什么谷歌测试不打印堆栈跟踪或文件名
- 在明夫中打印堆栈跟踪
- GDB 显示奇怪的堆栈跟踪