据我所知,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
同样适用。
我的问题:
答案 0 :(得分:1)
我对Android Studio了解不多,但这似乎是Android工作室或lldb“MI”仿真层中处理lldb输入回调的错误(在这种情况下是提示输入实际命令的错误) 。)
如果是这样,你可以通过将命令放在一个文件中,然后使用“one-line”输入选项来解决它:
(lldb) br com add -o "com source /tmp/lldb.cmds"