我想知道你们用什么策略来修复运行时错误?真的很感激,如果你能分享一些提示!
以下是我的一些想法(可能在gdb的帮助下):
当由于某些内存被错误访问而发生运行时错误时,存储在转储核心中的地址是否显示内存所在的位置?
如果我能找到被访问的地址/内存导致运行时错误,是否可以找出哪个变量正在使用该地址(可能位于变量内存的开头或中间)?并找出附近的变量,将内存降低到内存块的正下方?
如果所有这些都可行,那么修复错误会有帮助吗?
谢谢和问候!
答案 0 :(得分:1)
我使用gdb的--args选项从命令行启动我的程序。
示例:
gdb --args foocode --with-super-awesome-option
run
这将加载程序foocode并将--with-super-awesome-option参数传递给它。当程序失败时,您将可以使用即用型gdb会话。
从那里你可以使用backtrace命令:
bt
这将显示导致崩溃的事件链(函数调用)。