====== 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.