远程 GDB 检查点/分叉故障
Remote GDB checkpoint/fork failure
我正在尝试在不支持在没有检查点的情况下运行或重新启动的远程目标上进行调试。唯一可用的用户是 root,因此应该没有任何权限问题。我试过了:
Breakpoint 1, main (argc=4, argv=0x7fffffffe348) at foo.cpp:40
(gdb) checkpoint
checkpoint -1: fork returned pid 6145.
Failed to find new fork
(gdb) i checkpoints
No checkpoints.
有谁知道如何跑去上班?或者我如何检查以查看实际导致分叉失败并阻止检查点的原因?
经过一些实验后,将以下内容添加到您的 .gdbinit 文件中
target extended-remote <host>:<port>
这应该允许您使用 run 命令,而无需使用重新启动。
一旦你分叉了,你怎么能恢复一个检查点? 检查点在某个时刻回退到进程保存的状态。 一旦分叉发生,我想检查点只会存在于原始进程中。
从手册中有以下条目:
最后,有一点内部程序状态将是 返回到检查点(程序的进程 ID)时不同。 每个检查点都有一个唯一的进程 ID(或 pid),每个检查点都将 与程序的原始 PID 不同。如果您的程序有 保存了其进程 ID 的本地副本,这可能会造成 问题。
关于在远程会话上执行重新启动所需的检查点。 我以前从未使用过检查点,但是我已经重新启动了许多远程会话。
相关文章:
- 分段故障(堆芯转储)矢量
- C++中的动态铸造故障
- 数组的指针从不分段故障
- vscode g++链路故障:体系结构x86_64的未定义符号
- 访问被拒绝后,c++中的故障保护代码
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 调试 CUDA MMU 故障
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- Arch Linux.AUR 包 mysql 不能用 makepkg 构建.错误:构建 () 中出现故障
- 正在处理故障(堆芯转储)
- 在 Boost::fiber 中引发的BOOST_ASSERT故障 Visual Studio "Debug" 构建
- 如何进行故障排除:未定义对"非虚拟 thunk to ..."的引用
- C++函数过载会导致 SEG 故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 当新的故障时,是否有必要留出一些紧急内存?
- Python & C-C++ 扩展模块案例段故障
- 带升压的 SEG 故障::make_shared / 特征3 内存.h.
- 在 c++ 中,发生故障后是否需要 stream.clear()?
- 分段故障背包问题
- 远程 GDB 检查点/分叉故障