我运行了一个我构建的Qt应用程序:
即使我加入调试符号,也没有提供更多有用的信息。 ldd 显示所有库都被正确链接。
有其他方法可以找出问题吗?我甚至无法进行标准的 printf、cout 等调试。可执行文件似乎根本没有开始运行。
我使用符号重建,并尝试了下面的建议。
我检查了静态初始化程序,但好像没有发现任何问题。
是的,我尝试过printf、cout等方法。它甚至无法进入主程序,因此我正在寻找链接库中的静态初始化程序问题,并逐个添加这些问题。我也没有得到任何堆栈跟踪信息。
./App
Segmentation fault
我使用strace运行它:
strace ./App
execve("./App", ["./App"], [/* 27 vars */]) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 868 detached
再次,没有有用的信息。
我使用gdb运行它:
(gdb) run
Starting program: /root/test/App
Reading symbols from shared object read from target memory...(no debugging symbols found)...done.
Loaded system supplied DSO at 0xffffe000
Program received signal SIGSEGV, Segmentation fault.
0x00000001 in ?? ()
再次,没有任何内容。
我使用valgrind运行它:
==948== Process terminating with default action of signal 11 (SIGSEGV)
==948== Bad permissions for mapped region at address 0x0
==948== at 0x1: (within /root/test/App)
即使我加入调试符号,也没有提供更多有用的信息。 ldd 显示所有库都被正确链接。
有其他方法可以找出问题吗?我甚至无法进行标准的 printf、cout 等调试。可执行文件似乎根本没有开始运行。
我使用符号重建,并尝试了下面的建议。
(gdb) break main
Breakpoint 1 at 0x45470
(gdb) run
Starting program: /root/test/App
Breakpoint 1 at 0x80045470
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0xffffe000
Program received signal SIGSEGV, Segmentation fault.
0x00000001 in ?? ()
我检查了静态初始化程序,但好像没有发现任何问题。
是的,我尝试过printf、cout等方法。它甚至无法进入主程序,因此我正在寻找链接库中的静态初始化程序问题,并逐个添加这些问题。我也没有得到任何堆栈跟踪信息。