我发现自己处于一个困难的情境中,需要在几乎没有调试工具的情况下调试Qt应用程序:当应用程序一遍又一遍地运行同一操作时,似乎会越来越多地使用CPU;经过多个小时后,CPU完全饱和。
该应用程序在ARM Linux嵌入式设备上运行,其中gdb似乎无法工作,可能是由于所提供的工具链存在难以发现的问题。strace似乎只报告计时器活动(这是OpenGL应用程序,所以这是可以预料的)。ltrace不可用,并且编译它会导致一个困难的任务,可能是无用的。我没有编写该应用程序,但源代码可用。
除了跟踪应用程序执行的所有方法调用外,我还能做些什么来发现应用程序在消耗如此多资源时正在忙碌做什么?是否有其他技术可以用来猜测问题或集中注意力的位置?
编辑:这是gdb的一个问题之一:在ARM上,gdb只报告回溯中的问号。即使编写一个模拟段错误的十行应用程序也会出现这种情况。
该应用程序在ARM Linux嵌入式设备上运行,其中gdb似乎无法工作,可能是由于所提供的工具链存在难以发现的问题。strace似乎只报告计时器活动(这是OpenGL应用程序,所以这是可以预料的)。ltrace不可用,并且编译它会导致一个困难的任务,可能是无用的。我没有编写该应用程序,但源代码可用。
除了跟踪应用程序执行的所有方法调用外,我还能做些什么来发现应用程序在消耗如此多资源时正在忙碌做什么?是否有其他技术可以用来猜测问题或集中注意力的位置?
编辑:这是gdb的一个问题之一:在ARM上,gdb只报告回溯中的问号。即使编写一个模拟段错误的十行应用程序也会出现这种情况。