国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 開發設計 > 正文

JDB的簡單使用

2019-11-18 14:04:54
字體:
來源:轉載
供稿:網友

  JDB 的簡單使用
新手可以看看,呵呵

余紹峰 (yusf@emc.eea.tsinghua.edu.cn)
2001 年 4 月

當新手開始學習java時,在一開始的新鮮感后馬上就會發現的一個問題就是如何調試。大家知道在Visual C++中提供了很好的調試工具,使用起來非凡的方便。Java中,以JDK為例,沒有一個方便的圖形界面,所以給新手調試帶來了很多的困難。很多人一開始是用System.out.PRintln()來觀察輸出結果。假如寫的程序很大,這樣的方法就顯然是效率太低。下面結合自己的學習體會簡單談一下Java中的調試工具JDB的使用。
環境:jdk 1.2.2

首先我們寫一個最簡單的小程序,但是它包含了一些最基本的面向對象要素。

class test

{

int a;

int b;

test(int aa,int bb)

{

a = aa;

b = bb;

}

int add()

{return a+b;}

}

public class hehe

{

public static void main(String args[])

{

int a = 2;

int b = 3;

int c= a+b;

System.out.println(c);

test kk=new test(1,2);

System.out.println(kk.add());

}

}



存為hehe.java后,用javac -g hehe.java進行編譯。用參數g是為了產生各種調試信息,不用就無法調試。假如這里碰到問題,請參考Helloworld攻略。上面的程序是可以通過的,可以直接用java hehe運行。下面結合該例子談談JDB的使用。

首先鍵入jdb hehe 假如出現下面信息,說明系統沒有找到調試的類。此時可以用java -classpath . hehe命令解決。

C:javasource>jdb hehe

Initializing jdb...

hehe not found

>



假如出現一下信息,說明開始進行調試,一切正常。假如是調試Applet,則用 appletviewer -debug hehe.Html命令進行調試

C:javasource>jdb -classpath . hehe

Initializing jdb...

0xb0:class(hehe)

>



回想VC中的調試,應該是設置斷點,然后再進行跟蹤。Java中也是一樣。用stop命令進行斷點設置。然后用 run 命令開始調試,運行程序到斷點,這里斷點是設置在 main 主函數中。

> stop at hehe:18

Breakpoint set at hehe:18

> run

run hehe

running ...

main[1]

Breakpoint hit: hehe.main (hehe:18)

main[1]



此時可以用locals命令查看變量,用step命令進入下一條命令,也可以用單獨一個stop命令來查看斷點的設置情況。注重此時b還沒有被賦值。 main[1] locals

Method arguments:

Local variables:

args =

a = 2

main[1] step

main[1]

Breakpoint hit: hehe.main (hehe:19)

main[1]



當運行到System.out.println()函數時,會出現一下提示:

main[1] step

main[1]

Breakpoint hit: java.lang.ClassLoader.loadClass (ClassLoader:247)

這個是因為我們跟蹤進去了println方法,我們一般沒有必要這樣做,此時可以用next跳過該方法進入到下一條一句。step的含義是進入函數跟蹤,next是轉入下一條語句執行。我們隨時可以鍵入 locals 和 list 命令來查看變量值和當前運行的代碼。下面箭頭指到地方即為當前程序運行到的地方。

main[1] next

main[1]

Breakpoint hit: hehe.main (hehe:20)

main[1] list

16 {

17 int a = 2;

18 int b = 3;

19 int c= a+b;

20 => System.out.println(c);

21 test kk=new test(1,2);

22 System.out.println(kk.add());

23

24 }

main[1]

接下來的問題自然是如何查看對象。當程序運行到new命令處時,鍵入locals,可以看到 main[1] step

main[1]

Breakpoint hit: test. (test:5)

main[1] list

1 class test

2 {

3 int a;

4 int b;

5 => test(int aa,int bb)

6 {

7 a = aa;

8 b = bb;

9 }

main[1] locals

Method arguments:

Local variables:

this = test@64fd6722

aa = 1

bb = 2

main[1]

可以看到此時顯示的變量值是類test中構造函數中的變量值。this對象即為當前構造的對象。可以用dump命令進行查看。

main[1] dump this

this = (test)0x11a {

int b = 0

int a = 0

}

也可以在main函數中用dump kk和print命令命令進行對象查看 main[1] dump kk

kk = (test)0x11a {

int b = 2

int a = 1

}

main[1] print kk

kk = test@64fd6722

main[1] print kk.a

kk.a = 1

main[1] print kk.b

kk.b = 2

最后鍵入cont命令,假如沒有其他斷點,程序就直接運行完畢退出。調試結束。 main[1] cont

3



> Current thread "main" died. Execution continuing...

>

hehe exited



上述操作中的斷點都是設置在main函數中的,假如要設置在調用的類方法中,則要用 stop in yourclassname.functionname 命令來進行設置,比如說: > stop in test.add

Breakpoint set in test.add

> run

run hehe

running ...

main[1] 5

Breakpoint hit: test.add (test:11)

main[1] list

7 a = aa;

8 b = bb;

9 }

10 int add()

11 => {return a+b;}

12 }

13 public class hehe

14 {

15 public static void main(String args[])

main[1]



這樣的話,我們已經可以在程序中的幾乎所有需要地方的地方進行斷點設置并進行跟蹤,查看變量。
JDB還有很多的調試手段,除了上面那些最常用的,其他很重要的還有clear清除斷點,use設置源程序路徑,memory顯示當前內存使用狀況,gc強制進行內存回收,!!重復上面的命令,thread設置當前線程,quit和exit退出jdb等,還有遠程調試等內容,都很有用。這里就不一一介紹了。

關于作者
余紹峰,大四學生,有近一年的 VC 編程經驗。出于愛好,于 2001 年開始學習 Java 歡迎各位高手新手多多提批評意見,共同學習,共同進步。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
久草福利资源在线视频| 国产在线观看av| 国产免费黄网站| 久久精品无码一区二区日韩av| 香蕉视频在线观看网站| 玖玖在线视频| 国产乱在线观看视频| 国产精品一区二区婷婷| 国产一区电影| 在线观看wwww| 久精品在线观看| 国产激情视频一区二区| 青草视频在线播放| 国产视频一二三区| 亚洲妇熟xxxx妇色黄| 二人午夜免费观看在线视频| 日本中文字幕在线视频| 99在线视频观看| 成人亚洲一区二区三区| 精精国产xxxx视频在线中文版| 欧美成人精品福利网站| 国产极品一区二区三区| 国产在线超碰| 天天激情综合| 国产福利在线视频| 激情丁香在线| h网址在线观看| 中文国产字幕在线观看| 高清色视频在线观看| av手机免费观看| 国产成免费视频| 本道综合精品| 精品亚洲综合| 国产亚av手机在线观看 | 最新中文字幕在线视频| 思思99精品视频在线观看| 国产无套粉嫩白浆在线2022年| 免费午夜一级| 亚洲国产成人综合| 羞羞视频在线观看免费| 国产www视频在线观看| 国产羞羞视频在线播放| 国产在线观看a| 午夜免费福利在线观看| 国产美女自拍视频| 免费看ww视频网站入口| 欧美精品小视频| 秋霞av在线| 青青久草在线| 免费高清视频日韩| 国产专区在线播放| 国产麻豆综合视频在线观看| 国产资源在线看| 国产一区电影| 中文一区在线观看| av在线二区| 超碰免费在线| 国产精品入口麻豆免费观看| 国产区视频在线| 一本大道久久精品| av在线天天| 国产精品一区牛牛影视| 国产深夜福利| 亚洲视频网站在线| 超碰免费97在线观看| 国产毛片在线看| 99久久99热久久精品免费看| 欧美日韩在线视频免费观看| 国产美女福利在线| 在线观看国产视频| 中文字幕在线影院| av在线天天| 国产精品伦一区二区三区视频 | 91caoporn在线| 国产黄色在线播放| 日本高清中文字幕在线| 自拍av在线| 欧美艹逼视频| 伊人色综合网| 国产一级二级三级在线观看| av人人综合网| 国产香蕉免费精品视频| 亚洲v片在线观看| 中文字幕欧美日韩在线不卡| 午夜在线视频| 精品国产一区二区三区四区阿崩| 久久国产综合视频| 999福利在线视频| 国产精品入口麻豆免费看| 免费三级毛片| 欧美日韩视频精品一区二区| 国产福利一区二区在线精品| 国产乱子视频| 非洲黑人最猛性xxxx交| 青娱乐在线视频观看| 在线激情小视频| 精品国产一区二区三区久久久狼牙| 国产美女被草| 中文字幕视频在线| 最新中文字幕在线视频| 国产乱子视频| 中文字幕在线播放网址| 国内精品免费一区二区三区| 麻豆精品视频入口| 国产男女无套在线播放| 国产麻豆精品一区二区三区v视界| 老司机精品视频一区二区| 思思99精品视频在线观看| www555久久| 黄色毛片在线观看| 国产美女视频一区二区二三区| 国产中文字幕在线| 国产美女在线播放| 国产视频在线播放| 国产变态拳头交视频一区二区| 国产网红女主播精品视频| 国产精品视频一区二区三区麻豆 | 精品孕妇一区二区三区| 国产在线视频自拍| 最近中文字幕av免费高清| 国产二区视频| 久热中文字幕精品视频在线| 国产免费a∨片在线观看不卡| 尤物网址在线观看| av福利在线观看| 欧美性猛交xxxx免费看蜜桃| 天天操人人干| 亚洲精品aaaa| 中文字幕日本在线观看| 国产视频xxxx| 日本成人在线播放| 午夜视频在线| 亚洲男人网站| 天堂亚洲精品| 亚洲精品aaaa| 国产情侣高潮对白| 老鸭窝av在线| 一级二级三级在线观看| 国产在线传媒| free性亚洲| 99热99re6国产在线播放| 国产蜜臀在线| 免费三级毛片| 日本视频一二三区中文字幕| 国产精选在线观看| 日韩a视频在线观看| 国产福利免费在线观看| 国产一区二区三区美女秒播| 黄色国产在线| 欧美精品久久久久久久小说| 在线视频xx| 91极品在线| 国产日韩欧美精品一区二区三区 | 黄网址在线永久免费观看| 国产不卡在线| 国产婷婷视频在线| 国产理论电影在线观看| 九九热精品在线视频| 亚洲第一成人在线视频| 2018中文字幕在线观看| 国产黄色免费看| 国产porny蝌蚪视频| 国产区视频在线观看| 天堂在线免费观看| 国产网友自拍视频导航网站在线观看| 黄色av免费看| 国产免费a∨片在线观看不卡| 国产在线观看18| 国产精品㊣新片速递bt| 国产精品臀控福利在线观看| 美女网站在线观看| 国产女呦网站| 国产精品视频一区二区图片| 国产精品视频一区二区免费不卡 | 国产黄在线看| 在线黄色国产电影| av在线网页| 国产美女在线免费观看| 国产三线在线| 国产不卡精品一区二区三区| 伊人伊人av电影| 国产在线观看a| 国产激情视频一区二区三区| 国产黄色片中文字幕| 在线观看视频污| 国产在线传媒| 91www在线观看| 久久国产热视频| 国产黄色片在线播放| 日本电影在线观看| 国产人成高清视频观看| а√天堂8资源在线官网| 国产在线一区二区视频| 国产激情自拍视频| h网站久久久| 国产黄色网页| 国产在线黄色片| 三级小说一区| 99久久99久久免费精品小说| 成人av小说网|