使用java 8.我有一個junit測試,可以在Windows上正常工作,並在Linux上失敗。相同的代碼,只爲不同的平臺編譯。調用從java到jni到第三個庫(都是內部編寫的)。我想在Linux上的jni和lib級別調試調用,以便我可以看到變量,返回值等可能存在的差異。如何從螞蟻任務調試jni代碼?
在Windows上,這是一個快速:從IntelliJ運行測試,set斷點即將到達jni調用之前,啓動Visual Studio並附加到適當的java進程並在其中設置斷點。讓它運行並觀察,隨時觀察。
如何在Linux上做同樣的事情?具體來說,調試jni和lib?我可以從螞蟻運行測試,但是可以嘗試其他方式在Linux上運行它。
gdb可能很好用 – jgr208
你可以進一步瞭解一下嗎?我嘗試從gdb運行ant,但它說(關於ant):「文件格式無法識別」。繼續,我試圖在我想停止的方法上設置一個斷點,它告訴我我沒有加載符號表,使用文件命令。所以我輸入了「file /path/to/libxxx.so」,然後鍵入'run -f junit.xml',它試圖運行libxx.so文件時進行了segfaulted。 – Jon
呵呵?你不能從gdb運行ant,它聽起來就像你想從螞蟻調用gdb – jgr208