0
在lldb
,我得到help breakpoint set
:GDB/LLDB突破共享库
-a <address-expression> (--address <address-expression>)
Set the breakpoint at the specified address. If the address maps uniquely to a particular binary, then the address will be converted to a "file" address, so that the
breakpoint will track that binary+offset no matter where the binary eventually loads. Alternately, if you also specify the module - with the -s option - then the
address will be treated as a file address in that module, and resolved accordingly. Again, this will allow lldb to track that offset on subsequent reloads. The
module need not have been loaded at the time you specify this breakpoint, and will get resolved when the module is loaded.
和
-r <regular-expression> (--func-regex <regular-expression>)
Set the breakpoint by function name, evaluating a regular-expression to find the function name(s).
和
-s <shlib-name> (--shlib <shlib-name>)
Set the breakpoint only in this shared library. Can repeat this option multiple times to specify multiple shared libraries.
现在我想在命令的结果中可找到的指定模块/ dylib的每个函数处设置断点。
以libobjc.A.dylib
和MyOwn.dylib
为例。我想下面的命令,但未能:
(lldb) breakpoint set -r libobjc.A.dylib
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb) b +[ThunderManager load]
Breakpoint 2: where = MyOwn.dylib`+[ThunderManager load] +16 at ThunderManager.m:20, address = 0x000000010489f274
(lldb) breakpoint set -r MyOwn.dylib`*
Breakpoint 3: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
我想在模块libobjc.A.dylib
或MyOwn.dylib
,或任何其他特定加载的模块/共享库的所有功能lldb
GET休息。如何在lldb
中设置断点?