![找到与启动后立即崩溃的进程相关的二进制文件?](https://linux22.com/image/1097811/%E6%89%BE%E5%88%B0%E4%B8%8E%E5%90%AF%E5%8A%A8%E5%90%8E%E7%AB%8B%E5%8D%B3%E5%B4%A9%E6%BA%83%E7%9A%84%E8%BF%9B%E7%A8%8B%E7%9B%B8%E5%85%B3%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
程序 A 在检查系统配置后执行程序 B、C 或 D 之一。当我运行程序 A 时,它会启动其中一个程序,而新启动的程序崩溃(耗时不到一秒钟)。这使我无法通过 /proc 挂载找到该文件。有没有办法知道启动了哪个程序?
在 gdb 中运行程序 A 没有帮助,因为程序 A 读取的系统配置发生了变化,它启动了一个不同的程序。所有这些二进制文件(A、B、C 和 D)都位于同一目录中。
答案1
如果您无法留下痕迹,我建议您暂时重命名 B、C 和 D。假设 A 会告诉您 B、C 或 D 丢失,您应该会得到所需的信息。
如果它没有告诉你但仍生成错误,指出下一个进程缺失,你可以尝试重命名 B 和 C,看看会发生什么。然后仅使用 B 和 D 重试。此时你应该知道 B、C 或 D 是否是罪魁祸首。
另外,您可以手动尝试每一个,看看是否只有一个或所有都出现启动问题。