gpt4 book ai didi

c++ - 分析核心转储

转载 作者:行者123 更新时间:2023-12-01 14:56:58 24 4
gpt4 key购买 nike

我们有一个生成coredump的二进制文件。因此,我运行了gdb命令来分析问题。请注意,二进制文件和代码位于两个不同的位置,我们无法使用调试符号来构建整个二进制文件。因此,我可以从backtarce下找到如何以及哪些细节:

gdb二进制corefile

(gdb) where
#0 0x101fa37a in f1()
#1 0x10203812 in operator f2< ()
#2 0x085f6244 in f3 ()
#3 0x085f1574 in f4()
#4 0x0805b27b in sigsegv_handler ()
#5 <signal handler called>
#6 0x1018d945 in f5()
#7 0x1018e021 in f6()
..................................
#29 0x08055c5c in main ()
(gdb)

请提供我可以发出的gdb命令,以查找每个堆栈帧中的数据,问题可能出在哪里,出现故障的地方以及其他调试方法(如果有)?

最佳答案

您可以在gdb中使用帮助。浏览堆栈:帮助堆栈

用于浏览堆栈的主要有用命令是向上和向下。如果手头有调试符号,则可以使用list来查看位置。然后,要获取信息,您需要打印(缩写为“p”)。例如,如果您有一个名为myInt的int,则只需键入p myInt即可。没有调试信息,将更加困难。从堆栈框架看来,问题出在f5()中。您可以做的一件事是在gdb中启动程序。它会在发生段错误的位置停止。如果您有关于段错误的代码部分的提示,则可以使用调试选项来编译此代码单元。

那个基础。如果需要更多帮助,请告诉我们更多。

my2c

关于c++ - 分析核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134521/

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