Ku mojemu wielkiemu zaskoczeniu da się! I to bardzo łatwo.
Warunkiem koniecznym jest, naturalnie, jak to przy debugowaniu, posiadanie źródeł kodu DLLki.
Należy uruchomić oba środowiska (ulubione IDE Javy oraz ulubione IDE C/C++). Ja ulubionego C/C++ nie mam, ale użyłem Microsoft Visual C++ 2010 Express.
Zaczynamy od Javy. Stawiamy breakpoint przed wywołaniem kodu natywnego i uruchamiamy aplikację w javie.
Przełączamy się do IDE C/C++, stawiamy breakpoint wewnątrz natynwej metody i wybieramy Debug->attach to process. Wybieramy nasz proces (zapewne java lub javaw). Po podłączeniu się, w IDE Javowym puszczamy program dalej i w tym momencie IDE C/C++ łapie wywołanie. Dalej jest już prosta ścieżka, bo debugujemy program w C/C++.
Istnieje możliwość debugowania programu C/C++ w Eclipse CDT, wtedy należy stworzyć nową konfigurację debuggera "C/C++ Attach to a Local Application". Ale nie robiłem tego.
Polecam wpisy
Debugging Java Native Interface (JNI) DLLs using Microsoft Visual C++ 2008 Express and NetBeans 6.9
Debugging JNI C and Java code in Eclipse
Wednesday, November 9, 2011
Subscribe to:
Post Comments (Atom)
Co ty tam hakujesz takiego? :)
ReplyDeleteJeszcze nie zdradzam. Będzie hardware mojej produkcji i software (bazujące na OS). Komercyjny produkt. Premiera, mam nadzieję, jeszcze w tym roku.
ReplyDelete