Difference between revisions of "GDB ar QUEMU"
(→Startējam rīkus) |
(→Startējam rīkus) |
||
Line 6: | Line 6: | ||
Šajos pierakstos piemēra pēc lietosim 1234, bet jums jālieto savs ports! |
Šajos pierakstos piemēra pēc lietosim 1234, bet jums jālieto savs ports! |
||
==GDB termināļa režīmā== |
|||
==Startējam rīkus== |
|||
Pieņemsim, ka vēlaties atkļūmot savu programmu prog1. |
Pieņemsim, ka vēlaties atkļūmot savu programmu prog1. |
||
Line 17: | Line 17: | ||
qemu-arm -g 1234 prog1 & |
qemu-arm -g 1234 prog1 & |
||
⚫ | |||
3. Paceļam gdb priekšplānā |
3. Paceļam gdb priekšplānā |
||
Line 26: | Line 26: | ||
target remote localhost:1234 |
target remote localhost:1234 |
||
5. Izpildam gdb komandas atkļūmošanai: continue, step, next, |
5. Izpildam gdb komandas atkļūmošanai: continue, step, next, break, delete, info registers un tamlīdzīgi. |
||
continue |
continue |
||
==DDD - grafiskais atkļūmotājs== |
|||
Līdzīgi kā iepriekšējais. |
|||
Tikai gdb vietā jālieto ddd: |
|||
ddd --debugger arm-linux-gnueabi-gdb prog1 & |
|||
== Aliasi ātrākai izpildei == |
|||
Viens veids, ka vienkāršot palaišanu ir uztaisīt aliasa komandu un ievietot to .bash_alias failā. |
|||
Piemeram, ddd atkļūmotājam to varētu darīt šādi: |
|||
function debug() |
|||
⚫ | |||
id=‘id -u‘ |
|||
id=$(($id+20000)) |
|||
echo "target remote 127.0.0.1:$id" > ~/.gdbinit |
|||
(sleep 1; ddd --debugger arm-linux-gnueabi-gdb $1) & |
|||
qemu-arm -g $id $@ |
|||
} |
|||
Tad pēc .bash_alias izpildes (kas vienmēr notiek arī ielogojoties terminālī) vares palaist debugeri vienkarši ar "debug prog1" |
Revision as of 15:19, 15 April 2013
Par šo stāstīts lekcijā "Programmu izstrādes vide".
Ports
Izvēlamies portu, pa kuru GBB runās ar QUEMU. Vēlams ņemt savu identifikātoru + 20000. Šajos pierakstos piemēra pēc lietosim 1234, bet jums jālieto savs ports!
GDB termināļa režīmā
Pieņemsim, ka vēlaties atkļūmot savu programmu prog1.
1. startējam gdb, fonā:
arm-linux-gnueabi-gdb prog1 &
2. Startējam quemu, arī fonā, norādot portu:
qemu-arm -g 1234 prog1 &
3. Paceļam gdb priekšplānā
fg %arm-linux-gnueabi-gdb
4. No gdb vides sasienam gdb ar quemu lietojot to pašu portu
target remote localhost:1234
5. Izpildam gdb komandas atkļūmošanai: continue, step, next, break, delete, info registers un tamlīdzīgi.
continue
DDD - grafiskais atkļūmotājs
Līdzīgi kā iepriekšējais. Tikai gdb vietā jālieto ddd:
ddd --debugger arm-linux-gnueabi-gdb prog1 &
Aliasi ātrākai izpildei
Viens veids, ka vienkāršot palaišanu ir uztaisīt aliasa komandu un ievietot to .bash_alias failā. Piemeram, ddd atkļūmotājam to varētu darīt šādi:
function debug() { id=‘id -u‘ id=$(($id+20000)) echo "target remote 127.0.0.1:$id" > ~/.gdbinit (sleep 1; ddd --debugger arm-linux-gnueabi-gdb $1) & qemu-arm -g $id $@ }
Tad pēc .bash_alias izpildes (kas vienmēr notiek arī ielogojoties terminālī) vares palaist debugeri vienkarši ar "debug prog1"