gpt4 book ai didi

qt - 应用程序在 GDB 中崩溃但在正常运行时不会崩溃,在 libcrypto 中发生崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:25 26 4
gpt4 key购买 nike

我有显示 WebView(基于 webkit)的 Qt 应用程序。我正在尝试使用 gdb 调试它。当我通过 gdb 运行应用程序时,它几乎立即崩溃。当在 gdb 外部执行时,应用程序运行没有问题。

崩溃的原因是:

Thread 1 "myapp" received signal SIGILL, Illegal instruction.
0x4a4d9a88 in ?? () from /usr/lib/libcrypto.so.1.0.2

由于错误是 SIGILL,是否有可能是 gdb 从错误的路径加载库?

该应用程序非常简单,仅在特定 URL 处显示一个 WebView:

    ui->webView->page()->mainFrame()->setUrl(QUrl(urlString));

执行上述行后,应用程序在 gdb 中崩溃。

环境是在arm架构上运行linux的嵌入式系统:

Linux hh4 3.1.10-2.8.5+g841700f8a2ea #1 SMP PREEMPT Fri May 3 18:48:07 UTC 2019 armv7l GNU/Linux

如果您能帮助理解应用程序在 gdb 中崩溃的原因,我们将不胜感激。

最佳答案

GDB 加载错误的库是有可能的。

找出答案的一个简单方法是在 main() 上设置断点- 到那时你会期望库内存映射到进程中。

你或许可以使用 GDB 来检查,或者,在目标系统上获取一个 shell 并运行

losf -p <process_id>

这将列出该进程拥有的所有打开的文件句柄——包括所有内存映射的共享库。

如果您以某种方式使用开发主机的库,这肯定会解释它。

关于qt - 应用程序在 GDB 中崩溃但在正常运行时不会崩溃,在 libcrypto 中发生崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com