2

通常我通过在终端中键入开始调试java程序jdb,然后它将进入调试模式,然后我可以输入“stop at com.android.contacts.dirtyImport.DirtyImportManager:95”来告诉jdb在某行停止。

现在问题来了:我如何将这两个 cmds 输入一个。类似“jdb < stop at com.android.contacts.dirtyImport.DirtyImportManager:95”。我有这个要求的原因是我想让vim自动生成调试信息并进入调试模式,停止制作断点。

4

2 回答 2

3

一种选择是在标准输入前添加一行:

{ echo "stop at com.android.contacts.dirtyImport.DirtyImportManager:95"; cat; } | jdb

这将启动一个子shell ( {}),它首先打印给定的行,echo然后读取标准输入并将读取的行打印到标准输出 ( cat)。整个输入通过管道传输到 jdb。

然而,这会混淆一些区分终端输入和管道输入的程序。在这种情况下,您需要查看程序的引用,因为调试器通常支持从文件执行命令(如gdb-x

于 2012-05-15T09:45:43.493 回答
0

我不确定,但您可能会考虑生成expect脚本。这是一个教程,它对gdb自动化做了一些事情。

于 2012-05-15T09:39:02.610 回答