0

我有一个运行良好的基于​​ wxWidgets/GTK 的应用程序 - 除了在 Debian Squeeze ARM 系统上安装一个。当用户刚刚激活它的主窗口时,它就会崩溃。为了找到原因,我向应用程序添加了一个信号处理程序,并从该信号处理程序中使用 libunwind 来查找崩溃的来源。在运行良好的测试期间,当软件写入例如地址 0x0 libunwind 时,会正确地将我指向发生这种情况的函数。

但是意外出现崩溃的系统的结果有点奇怪,它们似乎发生在我的应用程序之外。一个崩溃来自一个没有名称的函数(这里 libunwind 返回一个空字符串),一个是由“malloc_usable_size”引起的,一个永远不会以这种方式死掉的系统函数。

那么……接下来该怎么办?欢迎所有想法,建议或任何其他提示,因为我不确定如何继续解决该问题......

4

1 回答 1

0
  • 检查缓冲区溢出或意外覆盖某些内存以查找库函数返回的项目的任何结构、指针、内存位置。
  • 检查代码中的无效指针释放是否为您正在使用的库分配指针。
  • 可能使用 valgrind 也会有所帮助。
于 2012-09-11T05:34:28.777 回答