[lldb-dev] NativeProcessProtocol breakpoint setting

Greg Clayton gclayton at apple.com
Mon Mar 24 10:59:42 PDT 2014

This size is primarily for ARM and Thumb breakpoints. The NativeProcessProtocol and NativeThreadProtocol protocol will be "I will do exactly what you tell me" and they shouldn't need to know how to dig through the object files to find the CPU map that shows exactly which addresses are ARM and which are Thumb. Sending the size field of 2 (for Thumb) and 4 (for ARM) helps the protocol to do its job. Most architectures will only have 1 size that is used (1 byte for x86 and x86_64 and 4 for PowerPC, etc). So this can mostly be ignored for non ARM targets.

In debugserver, the Z packets that set the breakpoints specify the size.


On Mar 24, 2014, at 10:33 AM, Todd Fiala <tfiala at google.com> wrote:

> Hey Greg,
> For this method in NativeProcessProtocol:
>         virtual Error
>         SetBreakpoint (lldb::addr_t addr, size_t size, bool hardware);
> What exactly is the size meant to represent?
> Also, is this method meant to be able to succeed if the breakpoint address isn't yet loaded, or should it fail if the address isn't loaded yet and assume that the caller would be watching for module load events and handle buffering breakpoints until the address is available?
> Can you point me to where debugserver implements the equivalent?
> Thanks!
> -- 
> Todd Fiala |	  Software Engineer |	 tfiala at google.com |	 650-943-3180

More information about the lldb-dev mailing list