"断点命令添加"在Android Studio中的LLDB命令行中不起作用

时间:2016-07-11 13:58:14

标签: android c++ debugging android-studio lldb

据我所知,lldb支持在遇到断点时自动执行命令(类似于gdb' s commands)。

Manual说它应该像这样工作:

(lldb) breakpoint command add 1.1 
Enter your debugger command(s). Type 'DONE' to end. 
> bt 
> DONE

每次遇到断点1.1时,都应该输出回溯。我试图在Android Studio 2.1.2的LLDB控制台中使用NDK版本12b执行相同的操作:

(lldb) breakpoint list
...
8: file = '/home/user/src_file.cpp', line = 2683, exact_match = 0, locations = 1, resolved = 1, hit count = 1
  8.1: where = libdroid_shared.so`(anonymous namespace)::onDbgThreadResume() + 20 at src_file.cpp:2683, address = 0x0000007f9cad6740, resolved, hit count = 1 

(lldb) breakpoint command add 8.1
(lldb) breakpoint command add 8.1
(lldb)

如您所见,调试器不允许我输入命令。当我在breakpoint commmand add行后按Enter键时,它只输出空行,并且没有命令行提示符。

我尝试了32位和64位调试器,使用不同的文件,断点和应用程序,但它不起作用。 gdb' s commands同样适用。

我的问题:

  • 这是Android Studio或lldb中的已知错误,是否有解决方法?
  • 也许这只是Android Studio UI中的一个错误?我可以在没有Android Studio的情况下使用lldb,只需使用命令行界面吗?我该怎么做?

1 个答案:

答案 0 :(得分:1)

我对Android Studio了解不多,但这似乎是Android工作室或lldb“MI”仿真层中处理lldb输入回调的错误(在这种情况下是提示输入实际命令的错误) 。)

如果是这样,你可以通过将命令放在一个文件中,然后使用“one-line”输入选项来解决它:

(lldb) br com add -o "com source /tmp/lldb.cmds"