Portál AbcLinuxu, 13. května 2025 23:38

Dotaz: praca s gdb

1.3.2010 20:35 cross
praca s gdb
Přečteno: 360×
Odpovědět | Admin
Ahojte,
precital som si par navodov o gdb. Mam napisany program v nasm, ktory obsahuje 3 instrukcie (jednoduche ukoncenie s 0). Ide mi o to, ze chcem zistit hodnoty registrov (info registers), no neviem donutit gdb, aby program krokoval po 1 instrukcii. Ak zadam break 1 a nasledne run, program sa ukonci a ja nie som schopny program krokovat (step). Neviete mi poradit, ako donutim gdb vykonavat program po jednej instrukcii? Neviem to nikde najst.
Dakujem.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.3.2010 21:44 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: praca s gdb
Odpovědět | | Sbalit | Link | Blokovat | Admin
/home/rastos> gdb                                                         
GNU gdb 6.8                                                               
Copyright (C) 2008 Free Software Foundation, Inc.
...
(gdb) help running
Running the program.

List of commands:
...
nexti -- Step one instruction
...
stepi -- Step one instruction exactly
1.3.2010 22:10 cross
Rozbalit Rozbalit vše Re: praca s gdb
To su prikazy, ktore sa pouzivaju v uz beziacom programe pod gdb. Ja vsak chcem spustit program tak, aby bol spusteny, ale aby nevykonal ziadnu (pripradne jednu) instrukciu. To sa mi zatial nedari :(
1.3.2010 23:36 Jirka P
Rozbalit Rozbalit vše Re: praca s gdb
IMHO není jiná cesta, než break main (nebo nějaký ekvivalent).
2.3.2010 15:08 Ivan
Rozbalit Rozbalit vše Re: praca s gdb
JJ, gdb spoleha na ruzny hacky v glibc. Pokud neni tvuj program ELF/a.out slinkovanej oproti glibc tak bude gdb dost zmeteny. Mozna ze nejaka cesta existuje, ale rozhodne to nebude standartni pouziti gdb.

Jedna z moznosti je napr. zavolat v programu syscall, kterej sam sobe posle SIGSTOP a pak attachnout gdb k tomu procesu.

8.3.2010 11:41 zulu
Rozbalit Rozbalit vše Re: praca s gdb
JJ, gdb spoleha na ruzny hacky v glibc.
nespoleha
Pokud neni tvuj program ELF/a.out slinkovanej oproti glibc tak bude gdb dost zmeteny.
nebude
Mozna ze nejaka cesta existuje, ale rozhodne to nebude standartni pouziti gdb.
existuje, naprosto standardni
Jedna z moznosti je napr. zavolat v programu syscall, kterej sam sobe posle SIGSTOP a pak attachnout gdb k tomu procesu.
nejhorsi mozne reseni
stativ avatar 8.3.2010 13:44 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: praca s gdb
JJ, gdb spoleha na ruzny hacky v glibc. Pokud neni tvuj program ELF/a.out slinkovanej oproti glibc tak bude gdb dost zmeteny. Mozna ze nejaka cesta existuje, ale rozhodne to nebude standartni pouziti gdb.
Používá standardní DWARF (minimálně pro C). IMO je ale co se týče debugování assembleru lepší používat edb.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
8.3.2010 11:39 zulu
Rozbalit Rozbalit vše Re: praca s gdb
br *adresa
stativ avatar 8.3.2010 13:39 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: praca s gdb
Odpovědět | | Sbalit | Link | Blokovat | Admin
Místo run použij start. Pak se debugger sám zastaví hned při vlezu do main fce. Mimochodem, možná by tě mohl zajímat edb.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.