We use the globally unique thread ID:
static uint64_t
GetGloballyUniqueThreadIDForMachPortID (thread_t mach_port_id)
{
kern_return_t kr;
thread_identifier_info_data_t tident;
mach_msg_type_number_t tident_count = THREAD_IDENTIFIER_INFO_COUNT;
kr = thread_info (mach_port_id, THREAD_IDENTIFIER_INFO, (thread_info_t)
&tident, &tident_count);
if (kr != KERN_SUCCESS)
{
return mach_port_id;
}
return tident.thread_id;
}
this is the best way because mach ports can be re-used, but the globally unique
thread ID is always guaranteed to be unique.
> On Jan 8, 2015, at 8:26 AM, Mario Zechner <[email protected]> wrote:
>
> Hi,
>
> we are currently trying work around some issues with rapid suspend/resume. We
> essentially setup a thread in the inferior with which we communicate via TCP
> to get informed of events such as thread start/stop without having to set
> breakpoints and stopping the inferior.
>
> Eventually we need to associate the native threads with the SBThread we get
> from LLDB's API. SBThread has an id and an index, but those don't seem to map
> to anything on the inferior side (e.g. the pthread id of the thread).
>
> Is there a way to perform this association?
>
> Thanks,
> Mario
>
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev