====== GDB ======
===== Instalacia gdb =====
- najprv je vhodne mat python-dev (pre podporu Qt)
apt-get install python-dev
- a stiahnut skript na podporu qt a nastavit si spustanie do gdb
sudo cp /usr/local/emtest/DevelInstall/qt-creator/gdb-script/kde-devel-gdb /opt/emtest/
echo "source /opt/emtest/kde-devel-gdb" > ~/.gdbinit
- stiahnut najnovsi gdb ( z http://www.gnu.org/software/gdb/ ) (stiahnut gdb-X.Y.tar.gz)
- rozbalit a v konzole prejst do tohto priecinku
- v konzole zadame prikazy (ak to chceme nainstalovat do /usr) :
- ./configure --prefix=/usr (ak hlasi chybu, treba nainstalovat balik ncurses a zopakovat)
- make
- sudo make install
Skontrolovat ci mame zelanu verziu gdb pomocou
gdb -v
Hotovo
===== Vzdialene debugovanie na ARMe (iba 2.6) =====
Nasledujuca sekcia popisuje sposob ako je mozne debugovat na vzdialenom zariadeni
==== Strojcek ====
Na strojceku treba spustit (binarka je v systeme):
gdbserver 0.0.0.0:45654 --attach
kde je cislo procesu ktory sa ide debugovat (akykolvek thread).
==== PC ====
Nastavenie projektu: /Project/Options/Debugger
do Debugger executable (je tam armovska binarka s l_):
/opt/emtest/src_svn/App_2.6/l_hlavny-riga/hlavny-riga/bin/hlavny3
do Debugging shell:
/usr/toolchain-arm-26/usr/bin/arm-linux-gdb
do Run gdb script:
~/arm-gdb
Nasledujuci text treba nakopirovat do suboru (podla nastavenia napr.): ~/arm-gdb
set solib-absolute-prefix /usr/toolchain-arm-26/
set solib-search-path /opt/emtest/src_svn/Libs_2.6/l_EEthernetTableDriver/EEthernetTableDriver/src/eethernettabledriver/
#set solib-search-path /opt/emtest/src/pokus/l_gdbtest/gdbtest/src/pokus/
target remote 192.168.0.181:45654
#continue # optional...
=== Poznamky ===
Breajky davat iba do l_ zdrojakov.
Pre kazdu libku kde chceme vidiet zdrojaky, treba ju vykompilovat pre arm a pridat adekvatny riadok (s l_):
set solib-search-path /opt/emtest/src_svn/Libs_2.6/l_EEthernetTableDriver/EEthernetTableDriver/src/eethernettabledriver/
===== Problemy =====
Hoci je gdb velmi uzitocny a potrebny nastroj, byvaju s nim casto problemy. Riesenia niektorych z nich sa nachadzaju na tejto stranke.
==== Nejde, padne debuger pri debugovani s triedou QMap ====
Je potrebne mat novsi debuger najlepsie verzie (7.4.1).
==== Konkretny projekt nejde debugovat ale ine idu ====
V jednom, alebo niektorych projektoch nenastartuje debuger (pise process exit), alebo nezastavuje v breakpointe.
Jeden z problemov moze byt, ze v adresarovej strukture sa nachadza ciarka (napr: /opt/emtest/src/App/zaloha_martin,zvolen). Ak ano treba ju odstranit premenovanim konkretneho adresare bez ciarky.