jingham added a comment.

Yes, you probably need to make another change, which is actually probably a 
good idea as well.

The immediate problem is that the default constructed SBValue is empty, it has 
a null ValueObjectSP, so until you somehow make it valid you can't get a valid 
error from it, in which to set your error string.  By the time you've made a 
valid SBValue it's too late.

But I think actually you should fix this by having a

ValueObjectSP  lldb_private::Thread::GetSiginfoValue()

then the SB API will just wrap that call.  That way you can make a real 
ValueObject, with a real error, and return that at any stage.

That will fix your problem, but the real reason for doing this is that 
lldb_private code can't call back into the SB API's.   So if anybody in 
lldb_private land needed the ValueObject that wrapped the Siginfo information, 
which is after all the handiest form in which to have it, they would be out of 
luck.

I didn't get a chance to review this, sorry about that.  But in general, SB 
API's should not do any more work than is necessary to marshal the incoming 
arguments & figure out which lldb_private API to dispatch it to.  Otherwise 
you've written code is going to end up getting duplicated somewhere (in a 
command or somewhere else it's needed...)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118055/new/

https://reviews.llvm.org/D118055

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to