【发布时间】:2012-04-21 03:12:10
【问题描述】:
如果我在 gdb 中运行 C/C++ 程序(在使用 -g 标志编译之后)并检查某些变量、参数...等的地址,然后在 gdb 之外运行它(使用 ./ ) 这些地址会和我在 gdb 中看到的一样吗?如果它们不同,它们通常是相似的还是完全不同的?
我问这个是因为我有一个缓冲区溢出程序,它在 gdb 中完美运行(有和没有断点),但是当我尝试在 gdb 之外运行它时它不起作用。
【问题讨论】:
-
关于缓冲区溢出,我建议您尝试 valgrind。
-
强制程序使用“ulimit -c unlimited”进行核心转储,然后使用gdb检查核心文件。
标签: c++ c gdb hex memory-address