- 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
Nasledujuca sekcia popisuje sposob ako je mozne debugovat na vzdialenom zariadeni
Na strojceku treba spustit (binarka je v systeme):
gdbserver 0.0.0.0:45654 --attach <PID>
kde <PID> je cislo procesu ktory sa ide debugovat (akykolvek thread).
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...
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/
Hoci je gdb velmi uzitocny a potrebny nastroj, byvaju s nim casto problemy. Riesenia niektorych z nich sa nachadzaju na tejto stranke.
Je potrebne mat novsi debuger najlepsie verzie (7.4.1).
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.