我正在使用JDB来远程调试程序。 我可以在JDB中编写脚本,以便我可以编写循环和if-else条件来控制JDB的执行方式并将jdb输出记录到文件中。

我的参考文档是GDB脚本

===============>>#1 票数:3

查看jdiscript ; 它是Java调试接口的瘦脚本前端,可以与Java,JRuby或任何其他jvm语言一起使用。

===============>>#2 票数:2

使用expect ,例如我使用Cygwin的原生Windows jdb expect

#!/usr/bin/expect

set timeout -1

set CP "oracle-jdbc-tz-1.0.0-RELEASE.jar;C:\\Users\\user\\.m2\\repository\\com\\oracle\\jdbc\\ojdbc6\\11.2.0.4\\ojdbc6-11.2.0.4.jar"

cd target
# puts [pwd]

spawn jdb -classpath $CP -sourcepath ../src/main/java
expect ">"

send "stop in home.App.main\n"
expect ">"

send "run home.App\n"
expect "Breakpoint hit:"

send "stop in home.App.run\n"
expect -re "main... "
send "cont\n"
expect -re "main... "
send "stop in home.App.barrier\n"
expect -re "main... "
send "trace go methods\n"
expect -re "main... "
send "cont\n"
expect -re "main... "
# interact
send "quit\n"
expect eof

要获取Maven项目运行的类路径:

mvn dependency:build-classpath

  ask by Xolve translate from so

未解决问题?本站智能推荐:

2回复

在Java jdb调试器中打印变量

如果类是在没有调试标志的情况下编译的,是否可以查看作为参数传递给函数的变量? 我成功调用了断点,但此后我不知道如何查看参数值。 我没有很好的源代码,软件已过时。 像这样的功能:void a(int var1,boolean var2)-所以,我要打印var1和打印var2。
2回复

没有麻烦的Java远程调试器比jdb更好?

我知道如何使用jdb和Eclipse在Java中进行远程调试。 jdb在调试UI方面有很多不足之处,但是不需要“设置” - 只需运行jdb -attach ...而bam你就是一个'debuggin'。 Eclipse具有更好的UI,但您必须使用远程运行的所有源文件,依赖项jar,源代码等的
1回复

如何在Java的jdb调试器中打印数组?

如何一次打印出字节数组的值? 我似乎记得我可以在gdb中指定一个内存范围。 jdb中是否有类似的功能? 我有一个Java字节数组: 我从一个字符串填充: 在jdb中,我想打印字节数组的内容。 我试过了 返回:
1回复

用jdb调试

为了弄清楚Sphinx 4 (Java中的CMU语音识别引擎)的方式,我尝试通过将分发版更改为我想要的方式使用该分发版附带的一个演示(该演示的名称为Aligner )。 我遇到了问题,想从命令行使用jdb进行调试。 我阅读了这里提供的文档,但是它是有限的,并且没有解决我的问题的方法,简而言之
1回复

在MATLAB中调试Java-找不到jdb

我正在尝试使用来自此处的说明在matlab中调试Java应用程序。 Matlab开始良好并回声: 在启用调试的情况下启动JVM。 使用“ jdb -connect com.sun.jdi.SocketAttach:port = 4444”来附加调试器。 但是当我尝
1回复

有没有比jdb更好的Java CLI调试工具?

我今天用jdb成功调试了一个Android应用程序。 但我发现jdb并不像gdb那样方便: jdb提供的便利性和功能远远低于gdb提供的功能。 是否有更好的Java调试器可以在命令行模式下使用 ? 优选地,这将是强大的,方便的和功能性的,因为gdb用于常规程序,但是用于Java。
1回复

Visual Studio代码 - “错误:生成jdb ENOENT”试图调试java应用程序[重复]

这个问题在这里已有答案: 如何在node.js上调试“错误:生成ENOENT”? 18个答案 我试图在Visual Studio代码中调试java应用程序并获得以下错误: "Error:spawn jdb ENOENT". Vs Code建议更新我的laun
1回复

如何将调试器附加到通过Commons Daemon Service Runner运行的Java程序上?

我想在Windows上运行的Java程序上进行一些调试:回溯,打印一些变量,设置断点,单步执行关键功能。 我尝试的第一件事是jdb -attach 5312 。 这失败,并显示“ shmemBase_attach失败:系统找不到指定的文件”。 我发现了有关该错误消息的一些相关 问题 ,
3回复

如何在Java的jdb中跳过一定次数的断点?

如何在jdb中跳过一定次数的断点? jdb的帮助提供了这个提示: 当我尝试多次跳过断点时,如下所示: 或者像这样: jdb barfs: 这里发生了什么? 我怎样才能获得理想的行为? 版: 为了澄清,我正在远程调试。 例如,我的第一个窗口开
1回复

调试时将jar库添加到jdb

我想使用jdb(命令行)调试我的源代码。 我的资源将使用一些外部jar库(例如:ojdbc)。 如何配置jdb引用外部jar库?