Op 2016-04-04 om 20:30 schreef Greg Clayton:

On Apr 4, 2016, at 11:24 AM, Zachary Turner <ztur...@google.com> wrote:

It seems like we already have some precedent for conditional command arguments. 
 For example:

(lldb) help platform process list
...
        -u <unsigned-integer> ( --uid <unsigned-integer> )
             [POSIX] Find processes that have a matching user ID.

So on Windows this argument doesn't make sense.  Could we make an argument that 
is conditional on the *target* rather than the host?  Then, for example, you 
could have something like this:

(lldb) help break set
...
        --code <hex-integer> ( --code <hex-integer> )
             [Windows Target] Break when the exception with code <code> is 
raised.

How to plumb this to the ProcessWindows plugin is an open question, but should 
be mostly mechanical.

This is like my suggestion of:

(lldb) breakpoint set --exception-code 0x40010005

The code can be passed to the current Platform along with the current target:

Error Platform::SetExceptionBreakpointWithExceptionCode (lldb_private::Target 
*target, uint64_t exception_code);

The process can be extracted from the target when the breakpoint needs to be 
resolved.



There should be a way then to do a "break on every exception", instead of just 1 specific code.

and some way for the api to get the payload (which can have a variable number of parameters)

--
Carlo Kok
RemObjects Software
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to