Change debugserver from using the mach port number (in debugserver's
authorJason Molenda <jmolenda@apple.com>
Fri, 22 Feb 2013 07:27:08 +0000 (07:27 +0000)
committerJason Molenda <jmolenda@apple.com>
Fri, 22 Feb 2013 07:27:08 +0000 (07:27 +0000)
commit1c73911d420db52e6d52cd68bd1020bfddb6d608
treee3b026d7558cda086f5d1243e6cf9f4cb9b17b0e
parent1fcd7fd633a44ab3ec944a5102afea74fcc8a23e
Change debugserver from using the mach port number (in debugserver's
own port namepsace) as the thread identifier to using the system-wide
globally unique thread id as the thread identifier number.

MachThread.cpp keeps both the unique id and the mach port number
for each thread.  All layers outside MachThread class use the unique
id with three exceptions: (1) Mach exceptions come in with the port
number (thread_port) which needs to be translated, (2) any calls to
low-level thread_get_state/thread_set_state/thread_suspend etc need
to use the mach port number, (3) MachThreadList::UpdateThreadList
which creates the MachThread objects gets the unique id and passes
it to the MachThread ctor as an argument.

In general, any time nub_thread_t is used, it is now referring to a
unique thread id.  Any time a thread_t is used, it is now referring
to a mach port number.  There was some interchangability of these
types previously.  nub_thread_t has also been changed to a 64-bit
type which necessitated some printf specification string changes.

I haven't been able to test these changes extensively yet but want
to checkpoint the work.  The scenarios I've been testing are all
working correctly so while there may be some corner cases I haven't
hit yet, I think it is substantially correct.

<rdar://problem/12931414>

llvm-svn: 175870
14 files changed:
lldb/tools/debugserver/source/DNB.cpp
lldb/tools/debugserver/source/DNBBreakpoint.cpp
lldb/tools/debugserver/source/DNBDefs.h
lldb/tools/debugserver/source/MacOSX/MachProcess.cpp
lldb/tools/debugserver/source/MacOSX/MachProcess.h
lldb/tools/debugserver/source/MacOSX/MachTask.cpp
lldb/tools/debugserver/source/MacOSX/MachThread.cpp
lldb/tools/debugserver/source/MacOSX/MachThread.h
lldb/tools/debugserver/source/MacOSX/MachThreadList.cpp
lldb/tools/debugserver/source/MacOSX/MachThreadList.h
lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp
lldb/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.cpp
lldb/tools/debugserver/source/MacOSX/ppc/DNBArchImpl.cpp
lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp