trap tag songs preguntas musica library las functions for code challenge canciones c debugging gdb fortran mpi

tag - Convertir un backcace libc a un número de línea de origen



tag de musica (1)

Si estás en gdb y tienes símbolos de depuración, es bastante fácil. Usa la list .

(gdb) list *0x804d5ce

Esto debería darle la línea de código y mostrarle la fuente si es capaz de encontrar el archivo fuente.

Sin gdb podrías intentar usar addr2line :

$ addr2line -e finite_element 0x804d5ce

Tengo una aplicación MPI con la que combina fuentes C y Fortran. Ocasionalmente se bloquea debido a un error relacionado con la memoria, pero tengo problemas para encontrar el error (está en algún lugar en el código de otra persona, con el que no estoy muy familiarizado en este momento). Todavía no he podido capturarlo con gdb, pero a veces se emite un seguimiento glibc como se muestra a continuación.

El error probablemente esté cerca de "(main_main_ + 0x3bca) [0x804d5ce]", (pero con un error de memoria, sé que este no es el caso). Mi pregunta es, ¿alguien sabe cómo convertir + 0x3bca o 0x804d5ce en una línea particular del código?

Cualquier otra sugerencia sobre el seguimiento del error también sería apreciada. Estoy bastante familiarizado con los conceptos básicos de 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>

Gracias...