我可以为 JDB - java 调试器编写脚本吗

发布于 2024-12-20 19:47:49 字数 245 浏览 1 评论 0原文

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

我的参考文档是 GDB Scripting

I am using JDB to remote debug a program. Can I write scripts within JDB so that i can write loops and if-else conditionals to control how JDB executes and record the jdb output to a file.

My reference document for this is GDB Scripting.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜灵血窟げ 2024-12-27 19:47:49

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

Check out jdiscript; it's a thin scripting frontend for the Java Debug Interface that can be used with Java, JRuby, or any other jvm language.

酒与心事 2024-12-27 19:47:49

使用 expect,例如,我使用 Cygwin expect 中的本机 Windows jdb

#!/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

Use expect, for instance I use native Windows jdb from Cygwin 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

To get classpath for Maven project run:

mvn dependency:build-classpath
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文