1
3
运行程序加载的.so文件可能导致runee正常工作。尝试对每个二进制文件进行ldd'ing,看看是否有库正在加载不同的版本/位置。 |
2
1
可能被调用的程序有内存泄漏。尝试使用Valgrind或其他内存检查工具运行它。在发生内存错误之后,其他的一切都是未定义的行为(因此一切都可能发生)。 |
3
0
黑暗中的一个场景:双执行可能会改变RAM中环境变量的顺序。 环境是带有指针的内存结构;内核将该结构复制到新进程的地址空间中。在复制过程中,RAM中元素的实际顺序可能会改变(环境变量不是语义顺序,但RAM中的地址有顺序)。使用两个exec(),可以修改订单两次。 RAM中字符串顺序的改变会发现一个bug,这有点奇怪,但发生了一些奇怪的事情。 |
4
0
我想知道你是否传递了不同的argv[0]到什么是shell。很明显,我看不到您上面写的内容,但是您可能将argv[0]设置为程序的实际第一个参数,而shell将其设置为其调用的名称(例如完整路径或短路径)。 |
5
0
我想有两件事你可以比较“工作”和“崩溃”版本-打开文件描述符和信号处理程序-因为这些都是由exec传递的。 我看不出问题是什么/有什么不同,但也许有必要消除它们。 |
CaTx · 使用带有一个大于号和两个大于号的回波的区别 2 年前 |
Ari157 · x86_64 Linux程序集中的逻辑与实现 2 年前 |
Ty Q. · 分段故障GLFW3/GLAD 2 年前 |
ShortArrow · 如何使用git管理链接源文件? 2 年前 |
Bastien L. · 多Linux Grafana集成 2 年前 |