2012-05-15 60 views
2

通常我在终端键入jdb开始调试java程序,然后进入调试模式,然后我可以输入“停在com.android.contacts.dirtyImport.DirtyImportManager:95”之类的东西,告诉jdb停在某些线。如何将两个命令合并到一个unix下?

现在,这里是一个问题:我如何结合这两个cmds输入一个。像“jdb <停在com.android.contacts.dirtyImport.DirtyImportManager:95”。我有这个要求的原因是我想让vim自动生成调试信息并进入调试模式,停止产生断点。

回答

3

一种选择是前面加上一个线到标准输入:

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

这将启动子外壳({}),该第一打印给定的与echo线,然后读取标准输入,并打印所读取的行标准输出(cat)。整个输入被输入到jdb中。

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

+0

我可以加两次这个答案吗?你完全是一个天才。我有这么长时间寻找这个答案。但是我仍然不知道'{'和猫用于什么?你能给我任何提示吗?因为在我删除你的命令的任何部分后,我不会像我希望的那样运行。再次感谢你。 –

+0

@ user674199:谢谢。扩大了答案。 – thiton

0

我不确定,但您可能会考虑生成expect脚本。 Here is a tutorial,它自动执行gdb

相关问题