tags:

views:

377

answers:

1

I run an Qt app I've built:

./App
Segmentation fault

I run it with strace:

strace ./App
execve("./App", ["./App"], [/* 27 vars */]) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 868 detached

Again, no useful info.

I run it with 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 ?? ()

Again, nothing.

I run it with 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)

Even if I put in debugging symbols, it doesn't give any more useful info. ldd shows all libraries being linked properly.

Is there any other way I can find out what's wrong? I can't even do standard printf, cout, etc debugging. The executable doesn't even seem to start running at all.

I rebuilt with symbols, and tried the suggestion below

(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 ?? ()

I checked for static initializers and I don't seem to have any.

Yep, I tried printf, cout, etc. It doesn't even make it into the main routine, so I'm looking for problems with static initializers in link libraries, adding them in one-by-one. I'm not getting any stack traces either.

A: 

Try running it through strace, it might give you at least some hints what happens before the program crashes. Also, does a backtrace in gdb not work?

bluebrother