Memory 修复运行时错误的策略

Memory 修复运行时错误的策略,memory,gdb,runtime,Memory,Gdb,Runtime,我想知道你们用什么策略来修复运行时错误?非常感谢你能分享一些建议 以下是我的一些想法(可能是在gdb的帮助下): 当由于错误访问某些内存而发生运行时错误时,转储内核中存储的地址是否显示内存的位置 如果我能找到被访问导致运行时错误的地址/内存,是否有可能找出哪个变量正在使用该地址(可能在变量内存的开头或中间)?并找出附近的变量,这些变量将内存从内存块的下方和上方取下 如果所有这些都是可能的,它会帮助修复错误吗 谢谢和问候 我使用gdb的--args选项从命令行启动程序 例如: gdb --args

我想知道你们用什么策略来修复运行时错误?非常感谢你能分享一些建议

以下是我的一些想法(可能是在gdb的帮助下):

当由于错误访问某些内存而发生运行时错误时,转储内核中存储的地址是否显示内存的位置

如果我能找到被访问导致运行时错误的地址/内存,是否有可能找出哪个变量正在使用该地址(可能在变量内存的开头或中间)?并找出附近的变量,这些变量将内存从内存块的下方和上方取下

如果所有这些都是可能的,它会帮助修复错误吗

谢谢和问候

我使用gdb的--args选项从命令行启动程序

例如:

gdb --args foocode --with-super-awesome-option
run
这将加载程序foocode并将--with super-awesome选项参数传递给它。当程序失败时,您将有一个随时可用的gdb会话在其中工作

从那里可以使用backtrace命令:

bt
这将向您显示导致崩溃的事件链(函数调用)