Konvertiert einen libc-Backtrace in eine Quellzeilennummer

Ich habe eine MPI-Anwendung, mit der sowohl C- als auch Fortran-Quellen kombiniert werden. Gelegentlich stürzt es aufgrund eines speicherbezogenen Fehlers ab, aber ich habe Probleme, den Fehler zu finden (er befindet sich irgendwo im Code eines anderen Benutzers, mit dem ich im Moment nicht sehr vertraut bin). Ich konnte es noch nicht mit gdb abfangen, aber manchmal wird ein glibc-Backtrace ausgegeben, wie unten gezeigt.

Der Fehler liegt wahrscheinlich in der Nähe von "(main_main_ + 0x3bca) [0x804d5ce]" (aber bei einem Speicherfehler weiß ich, dass dies möglicherweise nicht der Fall ist). Meine Frage ist, weiß jemand, wie man + 0x3bca oder 0x804d5ce in eine bestimmte Codezeile konvertiert?

Alle anderen Vorschläge zum Aufspüren des Fehlers sind ebenfalls willkommen. Ich bin ziemlich vertraut mit den Grundlagen von GDB.

*** glibc detected *** /home/.../src/finite_element: munmap_chunk(): invalid pointer: 0x09d83018 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x73e42)[0xb7409e42]
/lib/i386-linux-gnu/libc.so.6(+0x74525)[0xb740a525]
/home/.../src/finite_element(main_main_+0x3bca)[0x804d5ce]
/home/.../src/finite_element[0x804e195]
/home/.../src/finite_element(main+0x34)[0x804e1e8]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb73af4d3]
/home/davepc/finite-element/src/finite_element[0x8049971]
======= Memory map: ========
08048000-08056000 r-xp 00000000 08:05 1346306    /home/.../src/finite_element
08056000-08057000 r--p 0000d000 08:05 1346306    /home/.../src/finite_element
08057000-08058000 rw-p 0000e000 08:05 1346306    /home/.../src/finite_element
09d1b000-09d8f000 rw-p 00000000 00:00 0          [heap]
b2999000-b699b000 rw-s 00000000 08:03 15855      /tmp/openmpi-sessions-_0/37612/1/shared_mem_pool.babel
b699b000-b6b1d000 rw-p 00000000 00:00 0 
b6b31000-b6b3d000 r-xp 00000000 08:03 407798     /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
b6b3d000-b6b3e000 r--p 0000b000 08:03 407798     /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
b6b3e000-b6b3f000 rw-p 0000c000 08:03 407798     /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
<snip>

Vielen Dank...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage