我在Qemu中使用Ubuntu磁盘镜像作为ARM架构。我编译了几个多线程的C语言程序,并做了一些测试来执行它们。但是对于其中一个程序,它大多数时候都会因为分段错误而失败。我试图通过使用printf语句来跟踪有问题的区域。据我观察,它主要在不同的地方崩溃(被传递给线程的函数调用的函数内部的某个地方),这使得很难确定哪里出了问题,哪里出了问题?
无论我在我的Ubuntu x86硬件机器上执行多少次,同样的程序都运行得很好。
有没有人遇到过类似的问题?发生此问题是因为Qemu还是磁盘映像,还是两者都有?
有什么帮助吗?
发布于 2014-01-26 22:10:12
仅仅因为一个程序在一个环境中运行并不能保证它没有bug。打印语句是发现问题的一种方法,但或多或少会出错。最好是使用真正的调试器。您可能需要有gdb服务器和一个网络端口来调试在qemu中运行的程序,但这将允许您设置断点、单步执行、检查变量并获得崩溃的堆栈跟踪。
https://stackoverflow.com/questions/21364315
复制相似问题