gpt4 book ai didi

linux - 附加 GDB 调试器和记录回溯

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:40 27 4
gpt4 key购买 nike

为了调试我的应用程序,我已经苦苦挣扎了好几天。我想做的是将 GDB 附加到正在运行的进程(使用批处理静默),但如果发生崩溃,则将回溯记录到文本文件。我能够毫无问题地附加调试器(gdb 附加 pid)。但是一直无法实现与其静默运行相关的日志记录。

提前致谢。

最佳答案

But haven't been able to

你试过什么?示例:

cat t.c
int main() { sleep(5); printf("Aborting\n"); abort(); }

gcc -w -g t.c && ./a.out &
sleep 0.1 && rm -f gdb.txt &&
gdb -q --batch-silent -p "$(pgrep a.out)" -ex 'set logging on' \
-ex continue -ex where -ex quit &&
cat gdb.txt

这会产生:

[1] 38218       # bash reports background process
Aborting # process done sleeping

# contents of gdb.txt:
Program received signal SIGABRT, Aborted.
#0 0x00007f99aeb50c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007f99aeb54028 in __GI_abort () at abort.c:89
#2 0x00000000004005df in main () at t.c:1

# bash reports process termination:
$ -bash: line 98: 38225 Aborted (core dumped) ./a.out
[1]+ Exit 134 gcc -w -g t.c && ./a.out

关于linux - 附加 GDB 调试器和记录回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com