相关疑难解决方法(0)

我的程序崩溃时如何自动生成堆栈跟踪

我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.

我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).

我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?

c++ crash gcc assert stack-trace

561
推荐指数
20
解决办法
33万
查看次数

在GDB中显示当前汇编指令

我正在GDB中进行一些汇编级调试.有没有办法让GDB以与显示当前源代码行相同的方式向我显示当前的汇编指令?每个命令后的默认输出如下所示:

0x0001433f      990         Foo::bar(p);
Run Code Online (Sandbox Code Playgroud)

这给了我当前指令的地址,但是我必须继续参考输出,disassemble以便查看我当前正在执行哪条指令.

assembly gdb

169
推荐指数
7
解决办法
19万
查看次数

Linux:处理分段错误并获得核心转储

当我的应用程序崩溃时出现分段错误,我想从系统中获取核心转储.我通过先手配置来做到这一点

ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

我还想在我的应用程序日志中指出已发生分段错误.我这样做是通过使用sigaction().但是,如果我这样做,则信号不会达到其默认处理,并且不会保存核心转储.

如何让系统核心同时从我自己的信号处理程序转储日志行?

linux coredump signals segmentation-fault

9
推荐指数
2
解决办法
9981
查看次数

如何处理GDB中的所有信号

我正在做以下事情:

gdb -p $progid -x $file


>> cat file
>> handle SIGUSR1 nostop
    c
Run Code Online (Sandbox Code Playgroud)

如何处理nostop的所有信号而不必写:

handle SIGUSR1 nostop
handle SIGUSR2 nostop
Etc...
Run Code Online (Sandbox Code Playgroud)

gdb

6
推荐指数
1
解决办法
6288
查看次数

标签 统计

gdb ×2

assembly ×1

assert ×1

c++ ×1

coredump ×1

crash ×1

gcc ×1

linux ×1

segmentation-fault ×1

signals ×1

stack-trace ×1