trucos redes para hacks hackear comandos basicos c++ c linux unix gdb

c++ - redes - comandos cmd windows 10



Cómo establecer puntos de interrupción en futuras bibliotecas compartidas con un indicador de comando (3)

Estoy intentando automatizar una sesión de gdb usando el indicador --command . Estoy tratando de establecer un punto de interrupción en una función en una biblioteca compartida (el equivalente de Unix de una DLL). Mi cmds.gdb se ve así:

set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r

Sin embargo, estoy recibiendo lo siguiente:

shlomi:~/progs/bugs-external/kde/font-breaking$ gdb --command=cmds.gdb... GNU gdb 6.8-2mdv2009.0 (Mandriva Linux release 2009.0) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-mandriva-linux-gnu"... (no debugging symbols found) Function "IA__FcFontMatch" not defined. Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]

Entonces no establece el punto de ruptura después de todo. ¿Cómo puedo hacer que sea predeterminado para responder "y" para establecer puntos de interrupción en la carga futura de la biblioteca compartida pendiente?

Recuerdo que pude hacer algo, pero no recuerdo qué.


En respuesta a mí mismo, me gustaría dar la respuesta que alguien me dio en el IRC:

(gdb) apropos pending actions -- Specify the actions to be taken at a tracepoint set breakpoint -- Breakpoint specific settings set breakpoint pending -- Set debugger''s behavior regarding pending breakpoints show breakpoint -- Breakpoint specific settings show breakpoint pending -- Show debugger''s behavior regarding pending breakpoints

Y así establecer el punto de interrupción pendiente en el truco; se usa en cmds.gdb como, por ejemplo

set breakpoint pending on break <source file name>:<line number>


OT: En terminal, se vería así para depurar Caja en una línea:

gdb -ex "set breakpoint pending on" -ex "break gdk_x_error" -ex run --args caja --sync


Sin símbolos

objdump -t /lib/libacl.so SYMBOL TABLE: no symbols objdump -T /lib/libacl.so ... 00002bd0 g DF .text 000000d0 ACL_1.0 acl_delete_entry ... (gdb) break 0x0002bd0 (gdb) x/20i acl_delete_entry 0x2bd0 <acl_delete_entry>: stwu r1,-32(r1) 0x2bd4 <acl_delete_entry+4>: mflr r0 0x2bd8 <acl_delete_entry+8>: stw r29,20(r1) 0x2bdc <acl_delete_entry+12>: stw r30,24(r1) 0x2be0 <acl_delete_entry+16>: mr r29,r4 0x2be4 <acl_delete_entry+20>: li r4,28972