• Publicidad

Usando debbuger gdb en Perl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Usando debbuger gdb en Perl

Notapor erv-Z » 2009-12-02 17:26 @768

Buenas a todos, estoy tratando de escribir un script que pinte algo en gdb.

Manualmente sería así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
gdb ejecutable
r `perl -e 'print "A"'`
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Publicidad

Re: Usando debbuger gdb en Perl

Notapor explorer » 2009-12-02 17:50 @784

Puedes especificar a gdb que quieres ejecutar el binario perl, y luego, lo lanzas con los argumentos que quieras:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
explorer@dv9810:~> which perl
/usr/bin/perl
explorer@dv9810:~> gdb /usr/bin/perl
GNU gdb (GDB) SUSE (6.8.91.20090930-2.4)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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 "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/perl...Missing separate debuginfo for /usr/bin/perl
Try: zypper install -C "debuginfo(build-id)=a3d725d8c3d25daef6bd7219608ff41ef93ec24a"
(no debugging symbols found)...done.
(gdb) run -e 'print "Hola\n"'
Starting program: /usr/bin/perl -e 'print "Hola\n"'
Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
Try: zypper install -C "debuginfo(build-id)=591af1afa33f255704fb6a60859b93d00e205302"
Missing separate debuginfo for /lib64/libm.so.6
Try: zypper install -C "debuginfo(build-id)=57fc1891d8d9f419fb8c7fc06a8285563b53a47e"
Missing separate debuginfo for /lib64/libdl.so.2
Try: zypper install -C "debuginfo(build-id)=44e66ebae672563bd496f290e08d316bc3bf0ac7"
Missing separate debuginfo for /lib64/libcrypt.so.1
Try: zypper install -C "debuginfo(build-id)=b4127c6e9abfb7711018173fc6010b5853a5a781"
Missing separate debuginfo for /lib64/libpthread.so.0
Try: zypper install -C "debuginfo(build-id)=7bcbabc9da24424f1f5ef7be77b575fd3d796288"
[Thread debugging using libthread_db enabled]
Missing separate debuginfo for /lib64/libc.so.6
Try: zypper install -C "debuginfo(build-id)=c5a3dfd66bf61fcdec9bc22153b2fbd0d6697960"
Hola

Program exited normally.
(gdb)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Fíjate que salen un montón de avisos indicando que no hay información de depurado (los símbolos) ni en el intérprete ni en las librerías que ha cargado para ejecutar el miniprograma.

¿No prefieres el depurador integrado de Perl?

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
explorer@dv9810:~> perl -d -e 'print "Hola\n";'

Loading DB routines from perl5db.pl version 1.3
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1):   print "Hola\n";
  DB<1> n
Hola
Debugged program terminated.  Use q to quit or R to restart,
  use o inhibit_exit to avoid stopping after program termination,
  h q, h R or h o to get additional info.
  DB<1>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Usando debbuger gdb en Perl

Notapor erv-Z » 2009-12-02 18:08 @797

Oka, ¿cómo lo haría desde un script?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$gdb = 'gdb ./usr/bin/perl';
# Ahora quisiera imprimir pero necesitaría indicar el comando run
# luego pintar y no sé cómo le haría
system($gdb);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2009-12-02 19:02 @835, editado 2 veces en total
Razón: Ortografía
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Usando debbuger gdb en Perl

Notapor explorer » 2009-12-02 19:06 @837

Te recomiendo la lectura de la página de manual de gdb, pero me temo que no es tan sencillo hacer lo que quieres.

A propósito, ¿para qué quieres hacer todo esto?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Usando debbuger gdb en Perl

Notapor erv-Z » 2009-12-02 20:14 @884

Es que estoy aprendiendo ensamblador.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Usando debbuger gdb en Perl

Notapor visualfree » 2009-12-02 21:23 @933

¿Es para buscar fallos de seguridad?
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Re: Usando debbuger gdb en Perl

Notapor explorer » 2009-12-03 04:21 @223

Pues depurar Perl desde el ensamblador puede ser toda una aventura... es más de 1Mb de código binario...

Para que gdb pueda desensamblar el código, necesitas recompilar el código Perl desde las fuentes, activando las opciones para que elimine los símbolos en el proceso de enlazado.

¡Y muuucha paciencia!

¿No sería mejor hacer el "Hola mundo" en lenguaje C y ver el código que se genera?

Actualización: En CPAN tienes al módulo Inline::ASM, donde puedes escribir código ensamblador dentro del código Perl. También tienes módulos para emular y programar en el 6502 y Z80, por ejemplo, o incluso desensamblar código x86 (Disassemble::X86::FormatText), que creo que te será más útil, para ver el contenido de los binarios.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron