Могу ли я написать сценарии для JDB - отладчик Java - PullRequest
3 голосов
/ 12 декабря 2011

Я использую JDB для удаленной отладки программы. Могу ли я писать скрипты в JDB, чтобы я мог писать циклы и условные операторы if-else, чтобы контролировать выполнение JDB и записывать вывод jdb в файл.

Мой справочный документ для этого GDB Scripting .

Ответы [ 2 ]

3 голосов
/ 13 апреля 2014

Проверить jdiscript ;это тонкий интерфейс сценариев для Java Debug Interface , который можно использовать с Java, JRuby или любым другим языком jvm.

2 голосов
/ 02 июля 2018

Используйте expect, например, я использую собственную Windows jdb от 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

Чтобы получить путь к классам для запуска проекта Maven:

mvn dependency:build-classpath
...