一直在gdb 下調試c/c++程序。
突然要寫個java程序,又不是很喜歡使用eclipse,那怎麼調試程序呢。你還可以使用 jdb。
它是jdk 內置的一個java debug工具。類似與 gdb。不過功能稍弱,但也已經很值得敬佩了。
假如你的java源代碼是 hello.java 文件。那麼你需要編譯的時候加上 -g 選項。這一點和 gdb 一致。怎麼做?
javac -g hello.java
此時會生出一個 hello.class的文件。現在可以調試了。類似於 java命令一樣,jdb也僅僅需要加上類名(不需要 .class)
jdb hello
加載成功後,我們通常會在 main函數的位置加上斷點。怎麼做?
stop in hello.main
如何查看被成功加入的斷點?
clear
成功後,運行程序。
run
此時程序暫停到main函數的第一行
我們可以源代碼
list
包含等號和大於號的行是當前即將執行的行。僅僅執行當前行,怎麼做?
step
如果要查看某個變量的值比如變量 i的值。怎麼做?
print i
dump i
eval i
如果你認為這個值是錯的,比如它是1,可是你需要是2。如何修改它?
set i = 2
如何顯示當前堆棧幀中的所有本地變量
locals
想要執行並跨過某個函數。怎麼做?
next
想要一次只執行一個指令。怎麼做?
stepi
這一點和gdb是一致的。
從當前位置直接執行到程序結束(或者下一個斷點或信號)
cont
想要重復執行最後一個命令?
!!
將某個命令重復執行n次?
<n> <命令>
寫出所有幫助
help
?
查看jdb的版本號
version