GDB 调试dumped core文件

在调试堆栈溢出的时候,用gdb加载文件运行的时候的地址会和直接运行的地址有出入,这个时候我们需要先在没有gdb的情况下运行程序,程序崩溃会生成core文件 然后我们用gdb filename core进行调试 我在ubuntu上测试的时候会发现当前目录里面并没有生成core文件,在研究一番后发现需要修改/proc/sys/kernel/core_pattern 文件 然后我们用root来执行下面命令: $> mkdir -p /tmp/cores $> chmod a+rwx /tmp/cores $> echo “/tmp/cores/core.%e.%p.%h.%t” > /proc/sys/kernel/core_pattern 然后在运行文件,然后会在/tmp/cores目录下面生成core文件: ➜ challenge11 git:(master) ✗ ll /tmp/cores total 100K -rw——- 1 kow kow 516K Jan 15 00:07 core.challenge11.25425.ubuntu.1516003636 然后就可以调试了: ➜ challenge11 git:(master) ✗ gdb challenge11 /tmp/cores/core.challenge11.25425.ubuntu.1516003636 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016 Free […]