Jag brukar vanligen använda en trevlig textredigerare/IDE som heter Geany när jag knackar kod, den är lättviktig, trevlig och kan användas till det mesta som andra mycket "tyngre"  utvecklingsmiljöer kan. Inklusive att debugga kod, till och med java-program!

Vi börjar med att bygga geany från källkod, eftersom vi vill kunna använda en massa plugins som bara funkar med den senaste versionen från subversion. Om man bara är intresserad av att testa den som textredigerare kan man förstås installera en äldre version från t.ex. Ubuntus förråd: sudo apt-get install geany eller ladda hem den från geanys hemsida om man inte har avinstallerat Windows från sin dator ännu (men då får man också en äldre version än den som finns i subversion): 

Ok, om ni testade att bygga dia från subversion som vi gick igenom förra veckan, så har ni redan subversion och autoconf installerade, annars får ni börja med att installera dessa, öppna en terminal och skriv:

sudo apt-get install subversion autoconf

Om ni sitter i Windows kan ni installera TortoiseSVN, men efter det får ni klara er själva emoticon

När det är klart skapar vi en katalog dit vi sedan ska ladda hem källkoden och så ställer vi oss i den katalogen:

mkdir geany-src
cd geany-src

Nu är det dags att plocka hem lite källkod och installera, kör varje rad för sig och låt kommandona köra klart innan ni kör nästa:

svn co https://geany.svn.sourceforge.net/svnroot/geany/trunk geany
cd geany
./autogen.sh
make
sudo make install
cd .. 

Grattis,  nu är geany installerad, då plockar vi hem och installerar debuggern:

svn co https://geany-plugins.svn.sourceforge.net/svnroot/geany-plugins/trunk/geanydebug geanydebug
cd geanydebug
./autogen.sh
make
sudo make install
cd ..  

Jag har också valt att plocka in pluginet för versionhantering, geanyvc, men det är valfritt:

svn co https://geany-plugins.svn.sourceforge.net/svnroot/geany-plugins/trunk/geanyvc geanyvc
cd geanyvc
./autogen.sh
make
sudo make install
cd ..   

Tips: Kolla runt lite på de andra pluginen och se om du hittar nått du gillar, du har säkert förstått principen om hur du installerar dem vid det här laget:

Nu ska vi tweeka Geany lite, för det första öppnar vi Geany, t.ex. genom att skriva geany i terminalen.

  1. Klicka på verktygsmenyn och välj "tilläggshanteraren". Kryssa för "Debugger" (och "VC" om du också installerade versionshanteringen ovan) och klicka "ok".
  2. Välj sedan att skapa en ny C++-källfil genom att klicka på pilen bredvid "Ny" längst till vänster i menyn.
  3. Klicka sedan på "Bygg" → "Justera inkluderingar och argument" och lägg till flaggan -g strax efter g++, både vid alternativet "kompilera" och "Bygg" så att det står g++ -g -Wall -c "%f" respektive g++ -g -Wall -o "%e" "%f".
  4. Klart!

 

Du kan nu kompilera och bygga dina c++-program och sedan avlusa dem i en integrerad debugger i geany genom att ladda den körbara filen i debuggern.

Men nu till det roliga, debugger pluginet i geany avlusar med hjälp av GNU Debugger gdb. Nu ska vi använda pluginet för att avlusa java kod med hjälp av gdb och GNU projektets java kompilator gcj, som inte kompilerar till byte code, utan till riktiga exekverbara filer som gdb kan avlusa (och som man kan köra utan en Java Virtual Machine installerad). Detta är bara lite mer komplicerat, eftersom vi måste få geany att både kompilera och bygga i ett enda kommando:

  1. Välj att skapa en ny java-källfil genom att klicka på pilen bredvid "Ny" längst till vänster i menyn.
  2. Klicka sedan på "Bygg" → "Justera inkluderingar och argument" och byt ut javac "%f" som står vid alternativet "kompilera" mot strängen:  gcj -c -g -O "%f" && gcj –main="%e" -o "%e" "%e".o
  3. Klart!

Nu kan du avlusa javakod med hjälp av gdb i geany. Glöm inte att du måste ändra tillbaka kommandosträngen till javac "%f" om du vill bygga riktig java-byte-code igen.

Edit: OM du letar reda på filen filetypes.java som finns i ~.config/geany/filedefs och ändrar innehållet i den filen till detta:

[build_settings]
compiler=gcj -c -g -O "%f"
linker=gcj –main="%e" -o "%e.class" "%e.o"
run_cmd="./%e"

så får du separata rader för kompilering och byggande, på samma sätt som du får för en c++-fil t.ex.

Se även:

Läs även andra bloggares åsikter om java, c++, Fri programvara, GNU/Linux