最好的方法似乎是在.jdbrc文件中设置断点,因为这些断点已加载并被延迟,并且您无需更改代码来设置任意延迟循环来尝试在调试器等待时捕获它。我和您一样,发现如果在类名上设置断点,则它不起作用。它说推迟到类加载之前,但是似乎在加载类时jdb永远不会得到通知。
但是,如果您在特定的类和行号上设置了断点,则它确实可以工作
在您的.jdbrc文件中:
stop com.android.helloandroid.HelloAndroidstop com.android.helloandroid.HelloAndroid:21
如您所知,第一行不执行任何操作。第二行在这里对我有用:
Initializing jdb ...*** Reading commands from /home/preboy2k/.jdbrcDeferring breakpoint com.android.helloandroid.HelloAndroid.It will be set after the class is loaded.> Deferring breakpoint com.android.helloandroid.HelloAndroid:21.It will be set after the class is loaded.> > Set deferred breakpoint com.android.helloandroid.HelloAndroid:21Breakpoint hit: "thread= main", com.android.helloandroid.HelloAndroid.onCreate(), line=21 bci=11 main[1]
主要[1]
因此,关键似乎在于在断点中使用特定的行号。试试看。希望它能对您有所帮助并为您工作。



