Konwersja śledzenia wstecznego libc na numer linii źródłowej

Mam aplikację MPI, która łączy źródła C i Fortran. Od czasu do czasu zawiesza się z powodu błędu związanego z pamięcią, ale mam problem ze znalezieniem błędu (jest to gdzieś w kodzie kogoś innego, co w tej chwili nie jest mi zbyt dobrze znane). Nie udało mi się jeszcze złapać go za pomocą gdb, ale czasami jest odtwarzany ślad glibc, jak pokazano poniżej.

Błąd jest prawdopodobnie zbliżony do „(main_main_ + 0x3bca) [0x804d5ce]”, (ale z błędem pamięci, wiem, że tak nie jest). Moje pytanie brzmi: czy ktoś wie, jak przekonwertować + 0x3bca lub 0x804d5ce na konkretny wiersz kodu?

Wszelkie inne sugestie dotyczące śledzenia błędu również zostaną docenione. Jestem zaznajomiony z podstawami 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>

Dziękuję Ci...

questionAnswers(1)

yourAnswerToTheQuestion