23. June 2014

How to debug Gradle script

First of all: do not use daemon mode for debugging.

IntelliJ Idea is automatically spawning daemon when you start any Gradle task. You have to attach to remote process.

I wrote┬ásmall “How to debug” based on info from forums.gradle.org.

You’ll need to set GRADLE_OPTS environment variable to:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

Here is example in PowerShell:

01-command-line-options

$env:GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

Configure Remote debugging in Idea:

02-configure-remote

You do not need to change anything in default configuration.

Now return to command line with your project and invoke task. Gradle will automatically stop and it waits for debugger.

03-start-process

Attach debugger

04-attach-to-process

Here we go ­čÖé

05-break-point

There is small limitation. You can stop code execution outside DSL e.g. in class method (line 3). You won’t be able to stop execution in Gradle DSL line 10.

You can download sample build script from Github.

14. December 2010

Bez test┼» do v├Żvoje nelez

Parafr├íza na: Bez pen─Ťz do hospody nelez ­čśë

Pr├şklad z praxe: Fin├ílny v├Żsledok bol zle generovan├Ż. Asi 50 kr├ít som pre┼íiel k├│d. Pre┼íiel som v┼íetky vrstvy. To proste nebolo mo┼żn├ę, v├Żsledok sa mus├ş generova┼ą spr├ívne!

Pozorn├Ż ─Źitate─ż iste poznamenal: Nemus├ş. ­čśŤ

Presne tak. V├Żsledok sa generoval nespr├ívne. A to aj napriek mojej utkvelej predstave, ┼że v┼íetko je nap├şsan├ę spr├ívne.

Tak som sa zamyslel, nap├şsal som 5 testov, ktor├ę sa spustili za menej ne┼ż jednu sekundu. Nad testami som pustil debugger, predebuggoval som chybn├Ż test.

Ajh─ża. Bug. Miniat├║rny. Fakt mal├Ż. Ch├Żbaj├║ci jeden riadok v ┼ítvrtej vrstve.

Preto nezabudnite p├şsa┼ą testy a hlavne nezabudnite na to, ┼że testy sa daj├║ ─żah┼íie debuggova┼ą ne┼ż fin├ílna aplik├ícia. ­čÖé

E┼íte poznamen├ím, ┼że pre v├Żvoj na Pythonierskom Googliom AppEngine, je Intellj IDEA 10 (s Python pluginom) par├ídny n├ístroj. Pri unittestoch je potrebn├ę spr├ívne nastavi┼ą PYTHONPATH, a to nie len do google_appengine, ale aj do google_appengine/lib/webob.

29. November 2010

Materi├íly z predn├í┼íky – V├Żvoj v C++

Aj tento rok som mal mo┼żnos┼ą odpredn├í┼ía┼ą jednu predn├í┼íku vr├ímci kurzu C++ na FI MUNI v Brne. ─Äakujem Petrovi ┼ávendovi za pozvanie.

Pribudlo nieko─żko noviniek.

Predov┼íetk├Żm kontinu├ílna integr├ícia, profiling a debugging. Zo zauj├şmavost├ş pribudlo Adobe Alchemy – kompil├ítor z C++ do ActionScript Virtual Machine2.

K dispoz├şcii s├║ materi├íly z predn├í┼íky vo form├íte PDF a uk├í┼żky vo form├íte Tar.gz.

19. September 2010

Z├íznam z predn├í┼íky – Kdy┼ż n─Ťco rozeberem, tak leda debuggerem

Z├íznam z mojej minuloro─Źnej predn├í┼íky z WebExpa 2009 – Kdy┼ż n─Ťco rozeberem, tak leda debuggerem. ─Äakujem t├şmu WebExpa za spracovanie z├íznamu.

BTW: Nezabudnite sa z├║─Źastni┼ą aj WebExpa 2010, ktor├ę sa bude kona┼ą u┼ż za p├ír dn├ş.

27. February 2010

IntelliJ IDEA 9.0 na Linuxe nefunguje sie┼ą. Pozor na IPv6.

Potreboval som nejak├ę rozumn├ę prostredie, v ktorom je mo┼żn├ę pohodlne vyv├şja┼ą Flex na Linuxe. Adobe Flex Builder 3 alpha 5 nie je ├║plne dobre pou┼żite─żn├Ż. Nefunguje tam Design view na kreslenie GUI. To by mi a┼ż tak nech├Żbalo. Hor┼íia je chyba v otv├íran├ş MXML dokumentov.

T├Żm p├ídom aplik├íciu, ktor├í pozost├íva nie len s ActionScriptu, nie je mo┼żn├ę ladi┼ą. Tento probl├ęm s ignorovan├şm supportu Flex Buildra (Flash Buildra) na Linuxe, sa dostal na prv├ę miesto v rebr├ş─Źku najsledovanej┼í├şch bugov. Predbehol dokonca aj FP-40.

Pustil som sa teda do h─żadania in├ęho n├ístroja. Vo f├│re niekto odkazoval na IntelliJ IDEA 9.0. Stiahol som toto IDE, stiahol som Flex SDK z Opensource.adobe.com. Vytvoril som projekt. N├ídherne v┼íetko fungovalo. Niektor├ę vlastnosti m├í IDEA podstatne lep┼íie spracovan├ę ne┼ż Eclipse. Proste Wow. A teraz pri┼ílo na l├ímanie chleba.

Na┼ítartujem debugger s n├íhonom na v┼íetky 4… Ni─Ź… Waiting for AIR of Flash player to connect.

Ughm… Flex Debugger Startup Error

O 5 hod├şn nesk├┤r.

Mysl├şte, ┼że sa mi to podarilo rozbeha┼ą? Nie.

Tu som si v┼íimol nie─Źo ─Źudn├ę. IntelliJ IDEA sa v├┤bec nechcela pripoji┼ą na sie┼ą. Napr├şklad zlyhal aj update zoznamu pluginov. List of plugins was not loaded: Network is unreachable. ─îudn├ę.

A potom mi to do┼ílo. Ten ne┼í┼ąastn├şk sa pok├║┼íal prip├íja┼ą cez IPv6 na internet, ─Źo sa mu nepodarilo.

Na základe návodu som v /etc/default/grub.conf zmenil parameter pre štart jadra a deaktivoval IPv6

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"

a zaktualizoval Grub 2

update-grub

Po ┼ítarte syst├ęmu som sa presved─Źil pr├şkazom o deaktivovanej podpore pre IPv6:

ip a | grep inet6

┼Żiadny riadok na v├Żpise. ├Üspech, nebe┼ż├ş ┼żiadne IPv6 rozhranie.

A v├Żsledok? IntelliJ IDEA 9.0 funguje perfektne a v├Żborne debugguje aj Flexov├ę aplik├ície.

27. October 2009

Zdroj├ík.cz – nap├şsali o mne

R├íd by som sa pochv├ílil referenciou z port├ílu zdrojak.cz – St┼Ö├şpky z WebExpo 2009.

─Äakujem za referenciu. ­čÖé

16. October 2009

WebExpo 2009 – predn├í┼íka – Kdy┼ż n─Ťco rozeberem, tak leda debuggerem

Materi├íly z predn├í┼íky s├║ k dispoz├şcii. Ak sa v├ím predn├í┼íka p├í─Źila a nie─Źo v├ím priniesla, tak je to ve─żmi dobre ­čśë Nezabudnite hodnoti┼ą predn├í┼íku na str├ínkach konferencie WebExpo 2009. ─Äakujem v┼íetk├Żm, ─Źo pri┼íli. ­čÖé

22. September 2009

WebExpo 2009 – predn├í┼íka o debuggovan├ş

16. 10. 2009 o 17:30 budem predn├í┼ía┼ą v Prahe na konferencii WebExpo 2009. Tento rok sa pozrieme na mo┼żnosti ladenia server side aplik├íci├ş a ako ich p├şsa┼ą o k├║sok kvalitnej┼íie. Predn├í┼íka m├í titul: Kdy┼ż n─Ťco rozeberem, tak leda debuggerem. Cten├Ż ─Źitate─ż ur─Źite bystro sporozoval mal├║ paralelu. ­čśë

Tak pr├şdite, ocen├şm ka┼żd├║ mexick├║ vlnu po─Źas predn├í┼íky. A ako v┼żdy, mal├Ż bonus pre ─Źitate─żov. Pokia─ż sa za mnou zastav├şte po predn├í┼íke s heslom: “Aj ja si k├║pim b├íger.” ─îak├í v├ís mal├í odmena ­čśë

9. August 2009

Ladenie PHP aplikácie v Eclipse

Eclipse je v├Żborn├ę IDE, ktor├ę m├┤┼że u┼íetri┼ą ve─ża ─Źasu. Napr├şklad v pr├şpade, ┼że pracujete s├║─Źasne na projektoch vo viacer├Żch jazykoch ako Java, Python, Perl, ─Źi nebodaj PHP. S konfigur├íciou Eclipse a PDT pluginom som dlho nemal ├║spech. V┼żdy do┼ílo k nejakej neo─Źak├ívanej chybe. Probl├ęmy boli r├┤zne, nedostupn├Ż server, halu┼íky v Eclipse. Ale to u┼ż bolo d├ívno. Tak som sa pustil do zis┼ąovania, ─Źi sa v tomto smere nie─Źo nezmenilo. Mil├ę deti, zmenilo a k lep┼íiemu. ­čśë

Lok├ílne ladenie PHP aplik├ície v Eclipse je brnka─Źka, nepotrebujete ani nain┼ítalovan├ęho Apache, ─Źi in├║ web potvoru. Postup je jednoduch├Ż, ale zradn├Ż. Ak ┼íliapnete mimo vyzna─Źenej cesty, hroz├ş v├ím prepad do ba┼żiny, kde v├ís zo┼żerie nejak├í chyba.

  1. stiahnite Eclipse for PHP developer (n├ívod je p├şsany na Eclipse 3.5)
  2. rozba─żte ho, vytvor├ş sa adres├ír eclipse (pre Windows odpor├║─Źam pou┼żi┼ą na rozba─żovanie 7zip, nat├şvny rozzip├ítor akosi nefunguje spr├ívne, aspo┼ł mne nerozbalil v┼íetko)
  3. doinštalujte Zend Debugger, EclipseHelpInstall new softwareAdd
  4. Name: PDT, URL: http://downloads.zend.com/pdt, Ok, vyberte Zend Debugger a pokra─Źujte v in┼ítal├ícii
  5. presved─Źte sa, ┼że po re┼ítarte Eclipse m├íte zvolen├Ż spr├ívny debugger, EclipseWindowPreferencesPHPPHP Executables, mali by ste ma┼ą zvolen├ę nie─Źo ako PHP 5.2.9 CGI z adres├íra, kde je Eclipse

A hur├í debuggova┼ą. EclipseNewPHP Project – zada┼ą Project name – Finish. Pozor! Ak d├íte Next namiesto Finish, je mo┼żn├ę, ┼że skon─Ź├şte s chybov├Żm hl├ísen├şm duplicated entry. Pravdepodobne chyba vo workflow.

Vytvorte si nov├Ż PHP s├║bor, napr├şklad pozdrav.php:

<?php
echo “Ahoj Georgik!”;
?>

Dvojkliknite na p├ísik panelu v─żavo na riadku 2, ─Ź├şm nastav├şte break point.

eclipse-php-break-poing

A m├┤┼żeme s chu┼ąou debuggovat. Prav├Ż klik v editovacom okne – Debug asPHP script. Eclipse sa prepne do PHP Debug perspekt├şvy a zastav├ş sa na break pointe. Ovl├ídanie debuggera som u┼ż popisoval :-).

Takto nastaven├Ż Eclipse m├┤┼żete pou┼żi┼ą na lok├ílne ladenie. Nezabudnite pou┼ż├şva┼ą vhodn├Ż framework na p├şsanie PHP aplik├ícii. Skupina zubn├Żch lek├írov odpor├║─Źa framework Nette. ­čśë

  • Where’s the fish?

  • Translations

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Comments

  • Tags

  • Topics