是否可以在不使进程崩溃的情况下生成用于调试目的的小型核心转储。比方说,如果函数接收到意外值,仅打印日志并优雅地返回可能不足以调试问题。另一方面,如果我可以获得内存的屏幕截图并查看堆栈,我可以找到更多有用的调试信息。
最佳答案
是的,
根据 gdb 的 documentation ,一旦与 gdb 连接,您可以发出以下命令:
(gdb) gcore
(gdb) q
这会将核心转储到“core.pid”而不会导致进程崩溃。
或者这个单行:
sudo sh -c 'echo gcore <output_core> | gdb -p <pid>'
关于c - 如何在不崩溃 c 中的进程的情况下生成核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49060875/