java 调试 gdb_用GDB 调试Java程序

本文介绍了如何使用GDB进行Java程序的调试。通过设置断点、查看变量、单步执行等操作,展示了如何在GDB中跟踪和理解Java代码的执行流程。
摘要由CSDN通过智能技术生成

(gdb) r

Starting program: /home/hchen/java/sum

[Thread debugging using libthread_db enabled]

[New Thread -1243736400 (LWP 18131)]

[New Thread -1245406320 (LWP 18134)]

[Switching to Thread -1243736400 (LWP 18131)]

Breakpoint 1, sum.main(java.lang.String[])void (argc=@2bfa8) at sum.java:14

14              int result=0;

Current language:  auto; currently java

(gdb) break sum.Sum

Breakpoint 3 at 0x8048b68: file sum.java, line 4.

(gdb) c

Continuing.

Breakpoint 2, sum.main(java.lang.String[])void (argc=@2bfa8) at sum.java:16

16                  result += i;

(gdb) p result

$2 = 1225

(gdb) n

15              for (i=1; i<=100; i++){

(gdb) c

Continuing.

result = 5050

Breakpoint 3, sum.Sum(int)long (n=1000) at sum.java:4

4              long result=0, i;

(gdb) bt

#0  sum.Sum(int)long (n=1000) at sum.java:4

#1  0x08048edf in sum.main(java.lang.String[])void (argc=@2bfa8) at sum.java:19

#2  0xb6b17611 in gnu::java::lang::MainThread::call_main () from /usr/lib/libgcj.so.81

#3  0xb6b86797 in gnu::java::lang::MainThread::run () from /usr/lib/libgcj.so.81

#4  0xb6b29cf3 in _Jv_ThreadRun () from /usr/lib/libgcj.so.81

#5  0xb6ad77dd in _Jv_RunMain () from /usr/lib/libgcj.so.81

#6  0xb6ad7994 in _Jv_RunMain () from /usr/lib/libgcj.so.81

#7  0xb6ad7a1b in JvRunMain () from /usr/lib/libgcj.so.81

#8  0x08048b38 in main (argc=Cannot access memory at address 0x0) at /tmp/ccKMKFB0.i:11

(gdb) n

5              for(i=0; i

(gdb) n

6                  result += i;

(gdb) n

5              for(i=0; i

(gdb) finish 

Run till exit from #0  sum.Sum(int)long (n=1000) at sum.java:5

0x08048edf in sum.main(java.lang.String[])void (argc=@2bfa8) at sum.java:19

19              System.out.println("result = "+Sum(1000));

Value returned is $1 = 499500

(gdb) n

result = 499500

0xb6b17611 in gnu::java::lang::MainThread::call_main () from /usr/lib/libgcj.so.81

(gdb) info thread

2 Thread -1245553776 (LWP 18143)  0xffffe410 in __kernel_vsyscall ()

* 1 Thread -1243883856 (LWP 18142)  0xb6b17611 in gnu::java::lang::MainThread::call_main () from /usr/lib/libgcj.so.81

(gdb)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值