1*30fdc8d8SChris Lattner2010-01-29 Greg Clayton <[email protected]> 2*30fdc8d8SChris Lattner 3*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PrepareForAttach): No longer use the 4*30fdc8d8SChris Lattner SBSLaunchApplication macro from the SpringBoard.framework, use the actual 5*30fdc8d8SChris Lattner function name SBSLaunchApplicationForDebugging. 6*30fdc8d8SChris Lattner (MachProcess::CleanupAfterAttach): Ditto. 7*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Ditto. 8*30fdc8d8SChris Lattner (debugserver-entitlements.plist): Added the "seatbelt-profiles" entitlement 9*30fdc8d8SChris Lattner so debugserver can be sandboxed. 10*30fdc8d8SChris Lattner 11*30fdc8d8SChris Lattner2009-07-06 Greg Clayton <[email protected]> 12*30fdc8d8SChris Lattner 13*30fdc8d8SChris Lattner * MachTask.cpp (MachTask::GetDYLDAllImageInfosAddress): Hack around bad 14*30fdc8d8SChris Lattner kernel code that renamed the first member of the TASK_DYLD_INFO without 15*30fdc8d8SChris Lattner any way to detect it has changed. 16*30fdc8d8SChris Lattner 17*30fdc8d8SChris Lattner2009-06-29 Greg Clayton <[email protected]> 18*30fdc8d8SChris Lattner 19*30fdc8d8SChris Lattner * DNB.cpp (GetAllInfosMatchingName): Correctly truncate process name string 20*30fdc8d8SChris Lattner to MAXCOMLEN when searching kinfo_proc structs for process matches by name. 21*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PrepareForAttach): Added logging when 22*30fdc8d8SChris Lattner attaching to a program by name. 23*30fdc8d8SChris Lattner 24*30fdc8d8SChris Lattner2009-06-25 Greg Clayton <[email protected]> 25*30fdc8d8SChris Lattner 26*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessLaunch): Added a stat on the incoming path that we are 27*30fdc8d8SChris Lattner about to launch to make sure the file exists. If the file doesn't, then an 28*30fdc8d8SChris Lattner appropriate error string is returned. Also if we fail to get the task for 29*30fdc8d8SChris Lattner our process ID, we return an error string right away instead of letting the 30*30fdc8d8SChris Lattner debug session go for a little bit and then later failing after a few more 31*30fdc8d8SChris Lattner packets. 32*30fdc8d8SChris Lattner 33*30fdc8d8SChris Lattner2009-04-07 Jim Ingham <[email protected]> 34*30fdc8d8SChris Lattner 35*30fdc8d8SChris Lattner * RNBRemote.h: Add vAttachWait 36*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): Add vattachwait. 37*30fdc8d8SChris Lattner (RNBRemoteShouldCancelCallback): New function. 38*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_v): Handle vattachwait. 39*30fdc8d8SChris Lattner * RNBSocket.cpp (RNBSocket::Read): Mark the connection as closed when the 40*30fdc8d8SChris Lattner port goes away. 41*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessAttachByName): New function. 42*30fdc8d8SChris Lattner (DNBProcessAttach): Make this handle catching the attach when done and 43*30fdc8d8SChris Lattner dealing with timeout & return conditions. 44*30fdc8d8SChris Lattner (GetAllInfos): New function. 45*30fdc8d8SChris Lattner (GetAlInfosMatchingName): New function. 46*30fdc8d8SChris Lattner (DNBProcessAttachWait): New function. 47*30fdc8d8SChris Lattner DNB.h: Declare DNBProcessAttachByName, DNBProcessAttachWait, change 48*30fdc8d8SChris Lattner signature of DNBProcessAttach. 49*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PrepareForAttach): New function. 50*30fdc8d8SChris Lattner (MachProcess::CheckForProcess): New function. 51*30fdc8d8SChris Lattner (MachProcess::CleanupAfterAttach): New function. 52*30fdc8d8SChris Lattner (CopyBundleIDForPath): New function. 53*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Convert to using 54*30fdc8d8SChris Lattner CopyBundleIDForPath. 55*30fdc8d8SChris Lattner * MachProcess.h: Declare PrepareForAttach, CleanupAfterAttach and 56*30fdc8d8SChris Lattner CheckForProcess. 57*30fdc8d8SChris Lattner * DNBTimer.h (TimeOfDayLaterThan): New function. 58*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopGetStartModeFromRemote): Rename from 59*30fdc8d8SChris Lattner RNBRunLoopGetArgsFromRemote, and handle vattachwait. 60*30fdc8d8SChris Lattner (RNBRunLoopLaunchAttaching): Code was moved from here into DNBProcessAttach. 61*30fdc8d8SChris Lattner (StartListening): New function. 62*30fdc8d8SChris Lattner (GetAllProcessInfos, GetAllProcessInfosMatchingName): Moved to 63*30fdc8d8SChris Lattner DNBProcess.cpp. 64*30fdc8d8SChris Lattner (main): Handle attach waitfor, and make debugserver with only a host and 65*30fdc8d8SChris Lattner port wait on commands from gdb. 66*30fdc8d8SChris Lattner 67*30fdc8d8SChris Lattner2009-04-03 Greg Clayton <[email protected]> 68*30fdc8d8SChris Lattner 69*30fdc8d8SChris Lattner * RNBRemote.h (PacketEnum): Added enum for qShlibInfoAddr. 70*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable) Added the qShlibInfoAddr 71*30fdc8d8SChris Lattner packet definition to m_packets. 72*30fdc8d8SChris Lattner (RNBRemote::GetPacket): Log when we run into an unimplemented packet. 73*30fdc8d8SChris Lattner (RNBRemote::HandleReceivedPacket): Only log the packet when logging 74*30fdc8d8SChris Lattner LOG_RNB_REMOTE. 75*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_q): Add support for the new qShlibInfoAddr packet. 76*30fdc8d8SChris Lattner * DNB.h (DNBProcessGetSharedLibraryInfoAddress): New prototype. 77*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessGetSharedLibraryInfoAddress): New function. 78*30fdc8d8SChris Lattner * MachTask.h (MachProcess::GetDYLDAllImageInfosAddress): New prototype. 79*30fdc8d8SChris Lattner * MachTask.cpp (MachProcess::GetDYLDAllImageInfosAddress): New function. 80*30fdc8d8SChris Lattner 81*30fdc8d8SChris Lattner2009-04-01 Greg Clayton <[email protected]> 82*30fdc8d8SChris Lattner 83*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Display the detailed error message if any when 84*30fdc8d8SChris Lattner attaching fails. 85*30fdc8d8SChris Lattner 86*30fdc8d8SChris Lattner2009-03-25 Greg Clayton <[email protected]> 87*30fdc8d8SChris Lattner 88*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Cleaned up logging and 89*30fdc8d8SChris Lattner removed time deltas form the messages. 90*30fdc8d8SChris Lattner (RNBRunLoopLaunchAttaching): Ditto. 91*30fdc8d8SChris Lattner (RNBRunLoopLaunchInferior): Ditto and also use new DNBProcessLaunch that 92*30fdc8d8SChris Lattner takes an error string pointer. 93*30fdc8d8SChris Lattner * RNBContext.h (class RNBContext): Removed the m_timer member. 94*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::StartProcessStatusThread): Cleaned up logging 95*30fdc8d8SChris Lattner and removed time deltas form the messages. 96*30fdc8d8SChris Lattner (RNBContext::ThreadFunctionProcessStatus): Ditto. 97*30fdc8d8SChris Lattner * RNBSocket.h (class RNBSocket): Removed unused m_last_errno member and 98*30fdc8d8SChris Lattner accessor functions. 99*30fdc8d8SChris Lattner * RNBSocket.cpp (RNBSocket::Listen): Cleaned up logging and 100*30fdc8d8SChris Lattner removed time deltas form the messages. 101*30fdc8d8SChris Lattner (RNBSocket::ConnectToService): Ditto. 102*30fdc8d8SChris Lattner (RNBSocket::Read): Ditto. 103*30fdc8d8SChris Lattner (RNBSocket::Write): Ditto. 104*30fdc8d8SChris Lattner (RNBSocket::SaveErrno): Removed. 105*30fdc8d8SChris Lattner (RNBSocket::ClosePort): Don't call RNBSocket::SaveErrno(). 106*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::RNBRemote): Cleaned up logging and 107*30fdc8d8SChris Lattner removed time deltas form the messages. 108*30fdc8d8SChris Lattner (RNBRemote::~RNBRemote): Ditto. 109*30fdc8d8SChris Lattner (RNBRemote::SendPacket): Ditto. 110*30fdc8d8SChris Lattner (RNBRemote::GetPacketPayload): Ditto. 111*30fdc8d8SChris Lattner (RNBRemote::GetPacket): Ditto): Ditto. 112*30fdc8d8SChris Lattner (RNBRemote::HandleAsyncPacket): Ditto. 113*30fdc8d8SChris Lattner (RNBRemote::HandleReceivedPacket): Ditto. 114*30fdc8d8SChris Lattner (RNBRemote::CommDataReceived): Ditto. 115*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessLaunch): Changed to take a eror string pointer with 116*30fdc8d8SChris Lattner size for more desciptive error reporting (instead of a uint32_t pointer). 117*30fdc8d8SChris Lattner * DNB.h (DNBProcessLaunch): Ditto. 118*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::AsString): Now returns NULL if there is no error. 119*30fdc8d8SChris Lattner * DNBError.h (DNBError::SetErrorString): New accessor to allow custom error 120*30fdc8d8SChris Lattner strings. 121*30fdc8d8SChris Lattner * arm/DNBArchImpl.cpp (DNBArchMachARM::GetGPRState): Improved logging. 122*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::SBForkChildForPTraceDebugging): Improved 123*30fdc8d8SChris Lattner error messages when a file doesn't exist, or when unable to extract the 124*30fdc8d8SChris Lattner CFBundleIdentifier. 125*30fdc8d8SChris Lattner * PThreadEvent.cpp (class PThreadEvent): Commented out all logging calls. 126*30fdc8d8SChris Lattner 127*30fdc8d8SChris Lattner2009-03-07 Greg Clayton <[email protected]> 128*30fdc8d8SChris Lattner 129*30fdc8d8SChris Lattner * test-remotenub.cpp (GetAllProcessInfosMatchingName): New function that 130*30fdc8d8SChris Lattner returns matching kinfo_proc structs given a process name. 131*30fdc8d8SChris Lattner (main): Enhanced the --attach option to be able to take a PROCNAME or 132*30fdc8d8SChris Lattner a PID. Changed the --waitfor=PROCNAME option to ignore any existing 133*30fdc8d8SChris Lattner processes with PROCNAME so we only catch new process invocations. 134*30fdc8d8SChris Lattner 135*30fdc8d8SChris Lattner2009-03-07 Greg Clayton <[email protected]> 136*30fdc8d8SChris Lattner 137*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_p): Use the correct get current 138*30fdc8d8SChris Lattner thread function call so we get the correct thread registers. 139*30fdc8d8SChris Lattner 140*30fdc8d8SChris Lattner2009-03-03 Greg Clayton <[email protected]> 141*30fdc8d8SChris Lattner 142*30fdc8d8SChris Lattner * test-remotenub.cpp (g_isatty): New global that gets set to non-zero if 143*30fdc8d8SChris Lattner STDOUT is a TTY in the beginning of main. 144*30fdc8d8SChris Lattner (RNBLogSTDOUT): New macro that logs to STDOUT if g_isatty is non-zero, else 145*30fdc8d8SChris Lattner it logs to asl. 146*30fdc8d8SChris Lattner (RNBLogSTDERR): New macro that logs to STDERR if g_isatty is non-zero, else 147*30fdc8d8SChris Lattner it logs to asl. 148*30fdc8d8SChris Lattner (RNBRunLoopGetArgsFromRemote): Use new RNBLogSTDOUT/RNBLogSTDERR macros. 149*30fdc8d8SChris Lattner (GetAllProcessInfos): Get all process info structs for everything on the 150*30fdc8d8SChris Lattner system. 151*30fdc8d8SChris Lattner (main): Implemented new --waitfor=NAME option to allow waiting for a process 152*30fdc8d8SChris Lattner to run by polling the system processes. The new --waitfor-interval=N option 153*30fdc8d8SChris Lattner allows fine control over the polling interval where N is the number of mirco 154*30fdc8d8SChris Lattner seconds (usec) to wait between polls (defaults to 1000). The new 155*30fdc8d8SChris Lattner --waitfor-duration=N allows a timeout in seconds to be specified when 156*30fdc8d8SChris Lattner waiting for a process (defaults to infinite). 157*30fdc8d8SChris Lattner 158*30fdc8d8SChris Lattner2009-03-02 Greg Clayton <[email protected]> 159*30fdc8d8SChris Lattner 160*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): 161*30fdc8d8SChris Lattner Take care of a case where no instructions execute in a Thumb IT block and 162*30fdc8d8SChris Lattner the last of which is a branch. 163*30fdc8d8SChris Lattner 164*30fdc8d8SChris Lattner2009-02-10 Greg Clayton <[email protected]> 165*30fdc8d8SChris Lattner 166*30fdc8d8SChris Lattner * RNBRemote.h (PacketEnum): Added 'detach' enumeration. 167*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_D): New member function prototype. 168*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): Added detach support. 169*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_D): New function for detach support. 170*30fdc8d8SChris Lattner 171*30fdc8d8SChris Lattner2009-02-10 Greg Clayton <[email protected]> 172*30fdc8d8SChris Lattner 173*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_UNIMPLEMENTED): Log this 174*30fdc8d8SChris Lattner packet with the packet that is unimplemented. 175*30fdc8d8SChris Lattner (RNBRemote::GetPacket): Call RNBRemote::HandlePacket_UNIMPLEMENTED() 176*30fdc8d8SChris Lattner when we don't recognize a packet. 177*30fdc8d8SChris Lattner (RNBRemote::HandleReceivedPacket): Don't reply to packets we don't 178*30fdc8d8SChris Lattner recognize with unimplemented in this fucntion as that should have 179*30fdc8d8SChris Lattner already been done for us in RNBRemote::GetPacket(). 180*30fdc8d8SChris Lattner 181*30fdc8d8SChris Lattner2009-02-10 Greg Clayton <[email protected]> 182*30fdc8d8SChris Lattner 183*30fdc8d8SChris Lattner * RNBRemote.h (PacketEnum): Added query_step_packet_supported. 184*30fdc8d8SChris Lattner * RNBRemot.cpp (RNBRemote::CreatePacketTable): Added new 185*30fdc8d8SChris Lattner qStepPacketSupported packet. 186*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_q): Added support for the new 187*30fdc8d8SChris Lattner "qStepPacketSupported" packet. 188*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_G): Some cleanup when reading registers 189*30fdc8d8SChris Lattner to avoid spurious console logging. 190*30fdc8d8SChris Lattner 191*30fdc8d8SChris Lattner2009-01-30 Greg Clayton <[email protected]> 192*30fdc8d8SChris Lattner 193*30fdc8d8SChris Lattner * debugserver-entitlements.plist: Changed the entitlement 194*30fdc8d8SChris Lattner "run-invalid-allow" to "run-unsigned-code". 195*30fdc8d8SChris Lattner 196*30fdc8d8SChris Lattner2009-01-23 Greg Clayton <[email protected]> 197*30fdc8d8SChris Lattner 198*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): 199*30fdc8d8SChris Lattner Merged Yusuf's changes to make software single stepping work. 200*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Call new 201*30fdc8d8SChris Lattner DNBResolveExecutablePath function to resolve executable paths. 202*30fdc8d8SChris Lattner * DNB.h (DNBResolveExecutablePath): New function prototype. 203*30fdc8d8SChris Lattner * DNB.cpp (DNBResolveExecutablePath): New function that will resolve 204*30fdc8d8SChris Lattner relative paths and also executable paths for executables that aren't relative 205*30fdc8d8SChris Lattner but yet are in the shell PATH environment variable. 206*30fdc8d8SChris Lattner 207*30fdc8d8SChris Lattner2009-01-22 Greg Clayton <[email protected]> 208*30fdc8d8SChris Lattner 209*30fdc8d8SChris Lattner * DNBArchImpl.h (class DBNArchMachARM): Renamed member variable 210*30fdc8d8SChris Lattner m_chained_hw_single_step_addr to m_hw_single_chained_step_addr. Added 211*30fdc8d8SChris Lattner new member variables: m_sw_single_step_itblock_break_id, m_last_decode_pc, 212*30fdc8d8SChris Lattner and m_sw_single_step_itblock_break_count. Renamed m_thumbStaticData to 213*30fdc8d8SChris Lattner m_last_decode_thumb, and renamed m_decodedInstruction to m_last_decode_arm. 214*30fdc8d8SChris Lattner (DBNArchMachARM::DecodeITBlockInstructions): New prototype. 215*30fdc8d8SChris Lattner (DBNArchMachARM::DecodeInstructionUsingDisassembler): New prototype. 216*30fdc8d8SChris Lattner (DBNArchMachARM::BreakpointHit): New prototype. 217*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Disable any of the 218*30fdc8d8SChris Lattner many software single step breakpoints if any are set. 219*30fdc8d8SChris Lattner (DNBArchMachARM::StepNotComplete): Changed renamed member accesses. 220*30fdc8d8SChris Lattner (DNBArchMachARM::DecodeITBlockInstructions): New function for software 221*30fdc8d8SChris Lattner single stepping through Thumb IT blocks. 222*30fdc8d8SChris Lattner (DNBArchMachARM::EnableHardwareSingleStep): Cleaned up logging. 223*30fdc8d8SChris Lattner (DNBArchMachARM::ComputeNextPC): Ditto. 224*30fdc8d8SChris Lattner (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): Now 225*30fdc8d8SChris Lattner properly handles Thumb IT software single stepping. 226*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto. 227*30fdc8d8SChris Lattner (DNBArchMachARM::DecodeInstructionUsingDisassembler): New function. 228*30fdc8d8SChris Lattner (DNBArchMachARM::BreakpointHit): New breakpoint callback function. 229*30fdc8d8SChris Lattner 230*30fdc8d8SChris Lattner2009-01-21 Greg Clayton <[email protected]> 231*30fdc8d8SChris Lattner 232*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PrivateResume): Set the process state before 233*30fdc8d8SChris Lattner we actually resume so we are sure to get the events in the correct order. 234*30fdc8d8SChris Lattner 235*30fdc8d8SChris Lattner2009-01-16 Greg Clayton <[email protected]> 236*30fdc8d8SChris Lattner 237*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Include only 238*30fdc8d8SChris Lattner registers which are to be expedited in the T packets. 239*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_p): Enable for all targets. 240*30fdc8d8SChris Lattner (struct register_map_entry): Added an expedite member so we know which 241*30fdc8d8SChris Lattner registers need to be sent up to the host with each stop reply packet. 242*30fdc8d8SChris Lattner (register_map): Updated each array members' expedite member with an 243*30fdc8d8SChris Lattner appropriate value. 244*30fdc8d8SChris Lattner 245*30fdc8d8SChris Lattner2009-01-16 Greg Clayton <[email protected]> 246*30fdc8d8SChris Lattner 247*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_s): Enabled the step command ("s" 248*30fdc8d8SChris Lattner packet) for ARM now that libdebugnub.dylib can do both hardware and software 249*30fdc8d8SChris Lattner single stepping. 250*30fdc8d8SChris Lattner 251*30fdc8d8SChris Lattner2009-01-13 Greg Clayton <[email protected]> 252*30fdc8d8SChris Lattner 253*30fdc8d8SChris Lattner *DNBArchImpl.cpp (bit): New function. 254*30fdc8d8SChris Lattner (bits): New function. 255*30fdc8d8SChris Lattner (DNBArchMachARM::ConditionPassed): Use new "bit" function. 256*30fdc8d8SChris Lattner (DNBArchMachARM::ComputeNextPC): Use new "bit" function, remove inline 257*30fdc8d8SChris Lattner assembly for "RSC" instruction so this compiles for armv7 (which defaults 258*30fdc8d8SChris Lattner to thumb) 259*30fdc8d8SChris Lattner (DNBArchMachARM::NumSupportedHardwareBreakpoints): Use new "bits" function. 260*30fdc8d8SChris Lattner (DNBArchMachARM::NumSupportedHardwareWatchpoints): Use new "bits" function. 261*30fdc8d8SChris Lattner 262*30fdc8d8SChris Lattner2009-01-12 Greg Clayton <[email protected]> 263*30fdc8d8SChris Lattner 264*30fdc8d8SChris Lattner * DNBArch.h (DNBArchProtocol::NumSupportedHardwareBreakpoints()): Removed 265*30fdc8d8SChris Lattner the "const" qualifier to allow arches to auto detect how many hardware 266*30fdc8d8SChris Lattner breakpoints they have. 267*30fdc8d8SChris Lattner (DNBArchProtocol::NumSupportedHardwareWatchpoints()): Removed the "const" 268*30fdc8d8SChris Lattner qualifier to allow arches to auto detect how many hardware watchpoints they 269*30fdc8d8SChris Lattner have. 270*30fdc8d8SChris Lattner * DNBArchImpl.h (DNBArchMachARM::NumSupportedHardwareBreakpoints()): Auto 271*30fdc8d8SChris Lattner detect how many BRP pairs are avialable and disable for armv7 for the time 272*30fdc8d8SChris Lattner being (rdar://problem/6372672). 273*30fdc8d8SChris Lattner (DNBArchMachARM::NumSupportedHardwareWatchpoints()): Auto detect how many 274*30fdc8d8SChris Lattner WRP pairs are avialable and disable for armv7 for the time being 275*30fdc8d8SChris Lattner (rdar://problem/6372672). 276*30fdc8d8SChris Lattner 277*30fdc8d8SChris Lattner2009-01-09 Greg Clayton <[email protected]> 278*30fdc8d8SChris Lattner 279*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Filled in short argument versions for 280*30fdc8d8SChris Lattner --applist (-t) and --lockdown (-k) options. 281*30fdc8d8SChris Lattner * DNBArchImpl.h (DNBArchMachARM::ConditionPassed): New protected 282*30fdc8d8SChris Lattner member function. 283*30fdc8d8SChris Lattner (DNBArchMachARM::ComputeNextPC): New protected member function. 284*30fdc8d8SChris Lattner (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New 285*30fdc8d8SChris Lattner protected member function. 286*30fdc8d8SChris Lattner (DNBArchMachARM::m_thumbStaticData): New protected member variable. 287*30fdc8d8SChris Lattner (DNBArchMachARM::m_decodedInstruction): New protected member variable. 288*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Added extra code that 289*30fdc8d8SChris Lattner will log and exit when we are verifying software single stepping (a 290*30fdc8d8SChris Lattner compile time option). 291*30fdc8d8SChris Lattner (DNBArchMachARM::ConditionPassed): New function. 292*30fdc8d8SChris Lattner (DNBArchMachARM::ComputeNextPC): New function. 293*30fdc8d8SChris Lattner (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New 294*30fdc8d8SChris Lattner function. 295*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Added the guts of the 296*30fdc8d8SChris Lattner software single stepping. 297*30fdc8d8SChris Lattner (DNBArchMachARM::NumSupportedHardwareBreakpoints): Prepared for adding 298*30fdc8d8SChris Lattner auto detection code. 299*30fdc8d8SChris Lattner (DNBArchMachARM::NumSupportedHardwareWatchpoints): Prepared for adding 300*30fdc8d8SChris Lattner auto detection code. 301*30fdc8d8SChris Lattner 302*30fdc8d8SChris Lattner2008-12-11 Greg Clayton <[email protected]> 303*30fdc8d8SChris Lattner 304*30fdc8d8SChris Lattner * DNB.h (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents. 305*30fdc8d8SChris Lattner (DNBProcessSetEvents): Removed (deprecated). 306*30fdc8d8SChris Lattner (DNBProcessGetWaitForResetMask): Removed (unused). 307*30fdc8d8SChris Lattner (DNBProcessSetWaitForResetMask): Removed (unused). 308*30fdc8d8SChris Lattner (DNBProcessInterruptEvents): New function prototype. 309*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents. 310*30fdc8d8SChris Lattner (DNBProcessSetEvents): Removed (deprecated). 311*30fdc8d8SChris Lattner (DNBProcessGetWaitForResetMask): Removed (unused). 312*30fdc8d8SChris Lattner (DNBProcessSetWaitForResetMask): Removed (unused). 313*30fdc8d8SChris Lattner (DNBProcessInterruptEvents): New function that can be used to 314*30fdc8d8SChris Lattner asynchronously interrupt infinite wait for events calls. 315*30fdc8d8SChris Lattner RNBRemote.cpp (RNBRemote::HandlePacket_v): Call DNBProcessWaitForEvents. 316*30fdc8d8SChris Lattner RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Ditto. 317*30fdc8d8SChris Lattner test-remotenub.cpp (RNBRunLoopLaunchInferior): Ditto. 318*30fdc8d8SChris Lattner (RNBRunLoopLaunchAttaching): Ditto. 319*30fdc8d8SChris Lattner 320*30fdc8d8SChris Lattner2008-12-11 Greg Clayton <[email protected]> 321*30fdc8d8SChris Lattner 322*30fdc8d8SChris Lattner * DNB.cpp (GetProcessMap): Use new PTHREAD_MUTEX_LOCKER macro to ease 323*30fdc8d8SChris Lattner debugging of deadlocks. 324*30fdc8d8SChris Lattner (DNBProcessLaunch): Improved logging. 325*30fdc8d8SChris Lattner (DNBProcessMemoryRead): Call MachProcess::ReadMemory so breakpoint 326*30fdc8d8SChris Lattner opcodes can be removed from memory. 327*30fdc8d8SChris Lattner (DNBProcessMemoryWrite): Call MachProcess::WriteMemory so that we work 328*30fdc8d8SChris Lattner around enabled software breakpoint traps. 329*30fdc8d8SChris Lattner * DNBLog.cpp (GetLogThreadedMutex): New function. 330*30fdc8d8SChris Lattner (_DNBLogThreaded): Use new PTHREAD_MUTEX_LOCKER macro to ease 331*30fdc8d8SChris Lattner debugging of deadlocks. 332*30fdc8d8SChris Lattner (_DNBLogThreadedIf): Ditto. 333*30fdc8d8SChris Lattner * DNBBreakpoint.h (DNBBreakpoint::IntersectsRange): New function. 334*30fdc8d8SChris Lattner * DNBBreakpoint.cpp (DNBBreakpointList::FindIDByAddress): Improved 335*30fdc8d8SChris Lattner logging. 336*30fdc8d8SChris Lattner * MacOSX/MachThread.cpp (MachThread::MachThread): Improved logging. 337*30fdc8d8SChris Lattner (MachThread::~MachThread): Ditto. 338*30fdc8d8SChris Lattner (MachThread::Suspend): Ditto. 339*30fdc8d8SChris Lattner (MachThread::Resume): Ditto. 340*30fdc8d8SChris Lattner (MachThread::RestoreSuspendCount): Ditto. 341*30fdc8d8SChris Lattner (MachThread::GetState): Use new PTHREAD_MUTEX_LOCKER macro to ease 342*30fdc8d8SChris Lattner debugging of deadlocks. 343*30fdc8d8SChris Lattner (MachThread::SetState): Ditto. 344*30fdc8d8SChris Lattner * MacOSX/MachVMMemory.cpp (MachVMMemory::Read): Improved logging. 345*30fdc8d8SChris Lattner (MachVMMemory::Write): Ditto. 346*30fdc8d8SChris Lattner (MachVMMemory::WriteRegion): Ditto. 347*30fdc8d8SChris Lattner * MacOSX/MachProcess.cpp (MachProcess::GetState): Use new 348*30fdc8d8SChris Lattner PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks. 349*30fdc8d8SChris Lattner (MachProcess::SetState): Ditto. 350*30fdc8d8SChris Lattner (MachProcess::Clear): Ditto. 351*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Ditto. 352*30fdc8d8SChris Lattner (MachProcess::ReplyToAllExceptions): Ditto. 353*30fdc8d8SChris Lattner (MachProcess::ExceptionMessageReceived): Ditto. 354*30fdc8d8SChris Lattner (MachProcess::AppendSTDOUT): Ditto. 355*30fdc8d8SChris Lattner (MachProcess::GetAvailableSTDOUT): Ditto. 356*30fdc8d8SChris Lattner (MachProcess::ThreadFunctionSTDIO): Renamed from to 357*30fdc8d8SChris Lattner MachProcess::STDIOThread. 358*30fdc8d8SChris Lattner (MachProcess::StartSTDIOThread): Improved logging. 359*30fdc8d8SChris Lattner (MachProcess::CreateBreakpoint): Ditto. 360*30fdc8d8SChris Lattner (MachProcess::CreateWatchpoint): Ditto. 361*30fdc8d8SChris Lattner (MachProcess::DisableAllBreakpoints): Ditto. 362*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Ditto. 363*30fdc8d8SChris Lattner (MachProcess::DisableWatchpoint): Ditto. 364*30fdc8d8SChris Lattner (MachProcess::EnableBreakpoint): Ditto. 365*30fdc8d8SChris Lattner (MachProcess::EnableWatchpoint): Ditto. 366*30fdc8d8SChris Lattner (MachProcess::LaunchForDebug): Ditto. 367*30fdc8d8SChris Lattner (MachProcess::PosixSpawnChildForPTraceDebugging): Ditto. 368*30fdc8d8SChris Lattner (MachProcess::Detach): Reset the running event bit after resuming prior 369*30fdc8d8SChris Lattner to issuing the SIGSTOP to avoid a pause. 370*30fdc8d8SChris Lattner (MachProcess::RemoveTrapsFromBuffer): New function that removes 371*30fdc8d8SChris Lattner breakpoint traps from a memory buffer. 372*30fdc8d8SChris Lattner (MachProcess::ReadMemory): Read memory from the task, then removes any 373*30fdc8d8SChris Lattner breakpoint traps prior to returning the buffer. 374*30fdc8d8SChris Lattner (MachProcess::WriteMemory): Write memory and any needed data to the 375*30fdc8d8SChris Lattner breakpoint saved opcodes for any software breakpoint traps that are 376*30fdc8d8SChris Lattner enabled. 377*30fdc8d8SChris Lattner * MacOSX/MachProcess.h (MachProcess::ThreadFunctionException): Removed. 378*30fdc8d8SChris Lattner (MachProcess::ThreadFunctionSTDIO): Renamed to MachProcess::STDIOThread(). 379*30fdc8d8SChris Lattner (MachProcess::RemoveTrapsFromBuffer): New function. 380*30fdc8d8SChris Lattner * MacOSX/MachVMRegion.cpp (MachVMRegion::SetProtections): Improved 381*30fdc8d8SChris Lattner logging. 382*30fdc8d8SChris Lattner (MachVMRegion::RestoreProtections): Ditto. 383*30fdc8d8SChris Lattner (MachVMRegion::GetRegionForAddress): Ditto. 384*30fdc8d8SChris Lattner * MacOSX/MachException.cpp (catch_mach_exception_raise_state): Improved 385*30fdc8d8SChris Lattner logging. 386*30fdc8d8SChris Lattner (catch_mach_exception_raise_state_identity): Ditto. 387*30fdc8d8SChris Lattner (catch_mach_exception_raise): Ditto. 388*30fdc8d8SChris Lattner (MachException::Message::Dump): Ditto. 389*30fdc8d8SChris Lattner (MachException::Data::GetStopInfo): Ditto. 390*30fdc8d8SChris Lattner (MachException::Message::Receive): Ditto. 391*30fdc8d8SChris Lattner (MachException::Message::Reply): Ditto. 392*30fdc8d8SChris Lattner (MachException::Data::Dump): Ditto. 393*30fdc8d8SChris Lattner (MachException::PortInfo::Save): Ditto. 394*30fdc8d8SChris Lattner (MachException::PortInfo::Restore): Ditto. 395*30fdc8d8SChris Lattner * MacOSX/MachTask.cpp (MachTask::Suspend): Improved logging. 396*30fdc8d8SChris Lattner (MachTask::Resume): Ditto. 397*30fdc8d8SChris Lattner (MachTask::ReadMemory): Ditto. 398*30fdc8d8SChris Lattner (MachTask::WriteMemory): Ditto. 399*30fdc8d8SChris Lattner (MachTask::TaskPortForProcessID): Ditto. 400*30fdc8d8SChris Lattner (MachTask::BasicInfo): Ditto. 401*30fdc8d8SChris Lattner (MachTask::StartExceptionThread): Ditto. 402*30fdc8d8SChris Lattner (MachTask::ShutDownExcecptionThread): Ditto and use pthread_cancel to 403*30fdc8d8SChris Lattner interrupt the exception thread. 404*30fdc8d8SChris Lattner (MachTask::ExceptionThread): Ditto and revert back to infinite timeout 405*30fdc8d8SChris Lattner as pthread_cancel will break us out of infinite mach_msg receive calls. 406*30fdc8d8SChris Lattner * MacOSX/MachThreadList.cpp (MachThreadList::UpdateThreadList): Improved 407*30fdc8d8SChris Lattner logging. 408*30fdc8d8SChris Lattner (MachThreadList::CurrentThread): Use new PTHREAD_MUTEX_LOCKER macro to 409*30fdc8d8SChris Lattner ease debugging of deadlocks. 410*30fdc8d8SChris Lattner * DNBTimer.h (DNBTimer::DNBTimer): Initialize the mutex with a recursive 411*30fdc8d8SChris Lattner pthread. 412*30fdc8d8SChris Lattner (DNBTimer::Reset): Use new PTHREAD_MUTEX_LOCKER macro to ease debugging 413*30fdc8d8SChris Lattner of deadlocks. 414*30fdc8d8SChris Lattner (DNBTimer::TotalMicroSeconds): Ditto. 415*30fdc8d8SChris Lattner (DNBTimer::GetTime): Ditto. 416*30fdc8d8SChris Lattner (DNBTimer::ElapsedMicroSeconds): Ditto. 417*30fdc8d8SChris Lattner (DNBTimer::GetTimeOfDay): New class function. 418*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::LogThreaded): Improved logging. 419*30fdc8d8SChris Lattner * test-dbgnub.cpp 420*30fdc8d8SChris Lattner * PThreadMutex.h: Added the ability to debug deadlocks by defining 421*30fdc8d8SChris Lattner DEBUG_PTHREAD_MUTEX_DEADLOCKS. 422*30fdc8d8SChris Lattner * FunctionProfiler.cpp 423*30fdc8d8SChris Lattner * PThreadEvent.cpp (PThreadEvent::NewEventBit): Use new 424*30fdc8d8SChris Lattner PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks. 425*30fdc8d8SChris Lattner (PThreadEvent::FreeEventBits): Ditto. 426*30fdc8d8SChris Lattner (PThreadEvent::GetEventBits): Ditto. 427*30fdc8d8SChris Lattner (PThreadEvent::ReplaceEventBits): Ditto. 428*30fdc8d8SChris Lattner (PThreadEvent::SetEvents): Ditto. 429*30fdc8d8SChris Lattner (PThreadEvent::ResetEvents): Ditto. 430*30fdc8d8SChris Lattner (PThreadEvent::WaitForSetEvents): Ditto. 431*30fdc8d8SChris Lattner (PThreadEvent::WaitForEventsToReset): Ditto. 432*30fdc8d8SChris Lattner 433*30fdc8d8SChris Lattner2008-12-05 Greg Clayton <[email protected]> 434*30fdc8d8SChris Lattner 435*30fdc8d8SChris Lattner * DNBDefs.h (LOG_TASK): New log bit. 436*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessIsAlive): User newly abtracted MachTask class. 437*30fdc8d8SChris Lattner (DNBProcessMemoryRead): Ditto. 438*30fdc8d8SChris Lattner (DNBProcessMemoryWrite): Ditto. 439*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Ditto. 440*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints) Ditto. 441*30fdc8d8SChris Lattner * MachException.cpp (MachException::Message::Receive): Cleaned up logging 442*30fdc8d8SChris Lattner so it doesn't always log timeout errors. 443*30fdc8d8SChris Lattner (MachException::Message::Reply): Use abstracted MachTask class for any 444*30fdc8d8SChris Lattner task related queries. 445*30fdc8d8SChris Lattner (MachException::PortInfo::Save): Cleaned up logging. 446*30fdc8d8SChris Lattner (MachException::PortInfo::Restore): Cleaned up logging and now return an 447*30fdc8d8SChris Lattner error instead of the number of restored port infos. 448*30fdc8d8SChris Lattner * MachProcess.cpp (class MachProcess): Abstracted out all of the task_t 449*30fdc8d8SChris Lattner related stuff (suspend, resuyme, exception ports, exception thread, and 450*30fdc8d8SChris Lattner more) into a new class MachTask. 451*30fdc8d8SChris Lattner (MachProcess::Task): Now returns a reference to a MachTask class. 452*30fdc8d8SChris Lattner (MachProcess::Clear): Uses new abstracted MachTask class. 453*30fdc8d8SChris Lattner (MachProcess::Detach): Ditto. 454*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Ditto. 455*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Ditto. 456*30fdc8d8SChris Lattner (MachProcess::ExceptionMessageReceived): Ditto. 457*30fdc8d8SChris Lattner (MachProcess::ExceptionMessageBundleComplete): Ditto. 458*30fdc8d8SChris Lattner (MachProcess::AttachForDebug): Ditto. 459*30fdc8d8SChris Lattner (MachProcess::LaunchForDebug): Ditto. 460*30fdc8d8SChris Lattner (MachProcess::SBLaunchForDebug): Ditto. 461*30fdc8d8SChris Lattner (MachProcess::TaskIsValid): Removed (replaced by similar functionality 462*30fdc8d8SChris Lattner in the new MachTask class). 463*30fdc8d8SChris Lattner (MachProcess::ExceptionPort): Ditto. 464*30fdc8d8SChris Lattner (MachProcess::ExceptionPortIsValid): Ditto. 465*30fdc8d8SChris Lattner (MachProcess::StartExceptionThread): Ditto. 466*30fdc8d8SChris Lattner (MachProcess::Suspend): Ditto. 467*30fdc8d8SChris Lattner (MachProcess::TaskResume): Ditto. 468*30fdc8d8SChris Lattner (MachProcess::TaskBasicInfo): Ditto. 469*30fdc8d8SChris Lattner (MachProcess::TaskBasicInfo): Ditto. 470*30fdc8d8SChris Lattner (MachProcess::ReadMemory): Ditto. 471*30fdc8d8SChris Lattner (MachProcess::WriteMemory): Ditto. 472*30fdc8d8SChris Lattner (MachProcess::ThreadFunctionException): Ditto. 473*30fdc8d8SChris Lattner 474*30fdc8d8SChris Lattner2008-12-04 Greg Clayton <[email protected]> 475*30fdc8d8SChris Lattner 476*30fdc8d8SChris Lattner * DNB.h (DNBProcessSetEvents): New API function prototype. 477*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessSetEvents): New API function. 478*30fdc8d8SChris Lattner (DNBProcessHalt): Send our process a SIGINT instead of suspending 479*30fdc8d8SChris Lattner the task. 480*30fdc8d8SChris Lattner * DNBDefs.h (NUB_STATE_IS_STOPPED): Removed up duplicate entry in macro. 481*30fdc8d8SChris Lattner (eEventPrcoessAsyncInterrupt): New prcoess event bit that allows async 482*30fdc8d8SChris Lattner interrupting of infinite DNBProcessWaitForEvent() function calls. 483*30fdc8d8SChris Lattner * MachException.cpp (MachException::Message::Receive): Improved logging. 484*30fdc8d8SChris Lattner (MachException::Message::Reply): Improved logging. 485*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::TaskBasicInfo): New member and static 486*30fdc8d8SChris Lattner functions. 487*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::TaskIsValid): Use new TaskBasicInfo() 488*30fdc8d8SChris Lattner member function. 489*30fdc8d8SChris Lattner (MachProcess::Resume): Removed the detach parameter from the PrivateResume() 490*30fdc8d8SChris Lattner function call. 491*30fdc8d8SChris Lattner (MachProcess::Kill): Added a absolute timeout pointer to allow callers to 492*30fdc8d8SChris Lattner wait for the signal to be received if the timeout is non-NULL. 493*30fdc8d8SChris Lattner (MachProcess::TaskBasicInfo): New member and static function. 494*30fdc8d8SChris Lattner (MachProcess::TaskResume): New function that resumes the task by making sure 495*30fdc8d8SChris Lattner the suspend count is correctly ref counted. 496*30fdc8d8SChris Lattner (MachProcess::Detach): When detaching from a process make sure it is 497*30fdc8d8SChris Lattner stopped (SIGSTOP) first, then we can successfully detach. The exception 498*30fdc8d8SChris Lattner thread now also properly exits. 499*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Call new TaskResume function, and removed the 500*30fdc8d8SChris Lattner detach functionality. 501*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Only notify the thread list that a 502*30fdc8d8SChris Lattner breakpoint has changed if the breakpoint is going to be removed. 503*30fdc8d8SChris Lattner (MachProcess::ThreadFunctionException): Added a permanent 1 second timeout 504*30fdc8d8SChris Lattner for each call to mach_msg() so we can exit the thread in the event that 505*30fdc8d8SChris Lattner we detach from a process/task. 506*30fdc8d8SChris Lattner * test-debugnub (main): Modified to show an example of how to detach using 507*30fdc8d8SChris Lattner a signal_handler to asynchronously receive a SIGINT and properly interrupt 508*30fdc8d8SChris Lattner and detach from a running process. 509*30fdc8d8SChris Lattner 510*30fdc8d8SChris Lattner2008-11-26 Greg Clayton <[email protected]> 511*30fdc8d8SChris Lattner 512*30fdc8d8SChris Lattner * DNBDefs.h (LOG_STEP): New logging define. 513*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::LogThreaded): If there is no error, then 514*30fdc8d8SChris Lattner log with "success: " as a prefix instead of "error: ". 515*30fdc8d8SChris Lattner * arm/DBNArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Log using 516*30fdc8d8SChris Lattner new LOG_STEP instead of LOG_BREAKPOINTS. 517*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto. 518*30fdc8d8SChris Lattner * MachException.cpp (MachException::Message::Dump): Log excetion header 519*30fdc8d8SChris Lattner and reply header on two separate lines. 520*30fdc8d8SChris Lattner * MachProcess.cpp (IsSBProcess): Check for NULL CFArrayRef returned from 521*30fdc8d8SChris Lattner SBSCopyApplicationDisplayIdentifiers for SkankPhone. 522*30fdc8d8SChris Lattner (MachProcess::Suspend): Check if process state is not running instead of 523*30fdc8d8SChris Lattner having to receive an event after a timeout if one is given. 524*30fdc8d8SChris Lattner (MachProcess::Detach): Deallocate the exception port when detaching and 525*30fdc8d8SChris Lattner restore the inferior task exception ports prior to clearing and detaching. 526*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Grab the task's basic info and make sure we 527*30fdc8d8SChris Lattner get the resume the correct number of times. 528*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Removed unused variable opcode_restored 529*30fdc8d8SChris Lattner and make sure the breakpoint is enabled before we start warning that 530*30fdc8d8SChris Lattner our opcode wasn't there. 531*30fdc8d8SChris Lattner * ppc/DBNArchImpl.cpp (DNBArchMachPPC::EnableHardwareSingleStep): Log 532*30fdc8d8SChris Lattner using LOG_STEP instead of LOAD_BREAKPOINTS. 533*30fdc8d8SChris Lattner * RNBServices.cpp (IsSBProcess): Check for NULL CFArrayRef returned from 534*30fdc8d8SChris Lattner SBSCopyApplicationDisplayIdentifiers for SkankPhone. 535*30fdc8d8SChris Lattner 536*30fdc8d8SChris Lattner2008-11-26 Greg Clayton <[email protected]> 537*30fdc8d8SChris Lattner 538*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::Suspend): Now takes an optional absolute 539*30fdc8d8SChris Lattner timeout that, if non-NULL, will case the function to return after the 540*30fdc8d8SChris Lattner process has been suspended and is in a stopped state. If the timeout is 541*30fdc8d8SChris Lattner NULL, then no waiting will occur. 542*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::Suspend): Ditto. 543*30fdc8d8SChris Lattner (MachProcess::Detach): Now replies to all exceptions, un-suspends all 544*30fdc8d8SChris Lattner threads and resumes the task. 545*30fdc8d8SChris Lattner (MachProcess::ReplyToAllExceptions): New function. 546*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Now takes an additional parameter named 547*30fdc8d8SChris Lattner detach that will do the right thing when detaching from a process. 548*30fdc8d8SChris Lattner * DNBArchImpl.h (DNBArchMachI386::ThreadWillResume): Returns void. 549*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachI386::ThreadWillResume): Returns void. 550*30fdc8d8SChris Lattner * RNBServices.cpp (ListApplications): #ifdef-ed for ARM only as it 551*30fdc8d8SChris Lattner currently uses SpringBoard. 552*30fdc8d8SChris Lattner (IsSBProcess): Ditto. 553*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): #ifdef-ed around 554*30fdc8d8SChris Lattner ARM parts so it compiles for i386. 555*30fdc8d8SChris Lattner (main): Ditto. 556*30fdc8d8SChris Lattner 557*30fdc8d8SChris Lattner2008-11-24 Greg Clayton <[email protected]> 558*30fdc8d8SChris Lattner 559*30fdc8d8SChris Lattner * DNBArchProtocol.h (DNBArchProtocol::ThreadWillResume): Now returns void. 560*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::ThreadWillResume): Returns void and 561*30fdc8d8SChris Lattner has hollowed out support for software single step. 562*30fdc8d8SChris Lattner (DNBArchMachARM::ThreadDidStop): Has a debug mode that uses hardware single 563*30fdc8d8SChris Lattner step to verify software single step that can be enabled by defining 564*30fdc8d8SChris Lattner DNB_ARCH_MACH_ARM_DEBUG_SW_STEP. 565*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New function. 566*30fdc8d8SChris Lattner * DNBArchImpl.h (DNBArchMachARM::ThreadWillResume): Returns void. 567*30fdc8d8SChris Lattner (DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New prototype. 568*30fdc8d8SChris Lattner (DNBArchMachARM::m_sw_single_step_next_pc): New member variable. 569*30fdc8d8SChris Lattner (DNBArchMachARM::m_sw_single_step_break_id): New member variable. 570*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::ThreadWillResume): Now returns void. 571*30fdc8d8SChris Lattner * MachThread.h (MachThread::ThreadWillResume): Now returns void. 572*30fdc8d8SChris Lattner 573*30fdc8d8SChris Lattner2008-11-19 Greg Clayton <[email protected]> 574*30fdc8d8SChris Lattner 575*30fdc8d8SChris Lattner * DNBError.h (FlavorType): Added SpringBoard error type for arm builds. 576*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::AsString): Now returns SpringBoard error strings 577*30fdc8d8SChris Lattner if the error type is SpringBoard. 578*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Set the error into 579*30fdc8d8SChris Lattner RNBContext as either a POSIX error or a SpringBoard error. 580*30fdc8d8SChris Lattner * RNBContext.h (m_launch_status): Changed this member to be a DNBError 581*30fdc8d8SChris Lattner instead of a uint32_t. 582*30fdc8d8SChris Lattner (RNBContext::LaunchStatus): Now returns a reference to the DNBError object 583*30fdc8d8SChris Lattner in m_launch_status. 584*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::LaunchStatusAsString): Let DNBError handle 585*30fdc8d8SChris Lattner any error string descriptions, including SpringBoard errors. 586*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_q): Use new error class in 587*30fdc8d8SChris Lattner RNBContext. 588*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_C): Return without an erroneous error when resuming 589*30fdc8d8SChris Lattner a process with a signal. 590*30fdc8d8SChris Lattner * DNBArch.h (DNBArchProtocol::StepNotComplete): New protocol function with 591*30fdc8d8SChris Lattner default return value. 592*30fdc8d8SChris Lattner * DNBArchImpl.cpp (DNBArchMachARM::StepNotComplete): New function. 593*30fdc8d8SChris Lattner (DNBArchMachARM::EnableHardwareSingleStep): Handle hardware single stepping 594*30fdc8d8SChris Lattner over 32 bit thumb instructions better so we always do a true instruction 595*30fdc8d8SChris Lattner level single step. 596*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::ExceptionMessageBundleComplete): Now resumes 597*30fdc8d8SChris Lattner if single stepping wasn't able to complete in a single run. 598*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::ShouldStop): Fills in new step_more parameter 599*30fdc8d8SChris Lattner if stepping is not complete. 600*30fdc8d8SChris Lattner * MachThreadList.cpp (MachThreadList::ShouldStop): Pass step_more parameter 601*30fdc8d8SChris Lattner to each MachThread::ShouldStop call. 602*30fdc8d8SChris Lattner 603*30fdc8d8SChris Lattner2008-11-13 Greg Clayton <[email protected]> 604*30fdc8d8SChris Lattner 605*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PosixSpawnChildForPTraceDebugging): Don't 606*30fdc8d8SChris Lattner call posix_spawnattr_setbinpref_np when launching with posix_spawn on ARM 607*30fdc8d8SChris Lattner targets as it currently selects the incorrect slice due to multiple slices 608*30fdc8d8SChris Lattner that contain the same cputype, yet they all have differing cpusubtypes. 609*30fdc8d8SChris Lattner 610*30fdc8d8SChris Lattner2008-11-04 Greg Clayton <[email protected]> 611*30fdc8d8SChris Lattner 612*30fdc8d8SChris Lattner * RNBRemote.h (GetContinueThread): Don't return the current thread when 613*30fdc8d8SChris Lattner the continue thread is zero or -1. 614*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_c): Resume the process if we 615*30fdc8d8SChris Lattner have no continue thread set. 616*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_s): Ditto. 617*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_C): Ditto unless a continue address is specified 618*30fdc8d8SChris Lattner in which case we will only succeed if we have one thread when the continue 619*30fdc8d8SChris Lattner with signal and address doesn't have a continue thread specified. 620*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_S): Ditto. 621*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessResumeWithSignal): New function. 622*30fdc8d8SChris Lattner (DNBProcessResume): Added better logging. 623*30fdc8d8SChris Lattner (DNBProcessHalt): Ditto. 624*30fdc8d8SChris Lattner (DNBThreadResume): Ditto. 625*30fdc8d8SChris Lattner (DNBThreadResumeWithSignal): Ditto. 626*30fdc8d8SChris Lattner * DNB.h (DNBProcessResumeWithSignal): New prototype. 627*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::LogThreaded): New function. 628*30fdc8d8SChris Lattner * DNBError.h (DNBError::LogThreaded): New prototype. 629*30fdc8d8SChris Lattner * DNBLog.cpp (_DNBLogThreaded): Added sequence ID for threaded logs. 630*30fdc8d8SChris Lattner (_DNBLogThreadedIf): Ditto. 631*30fdc8d8SChris Lattner * MachException.cpp (MachException::Data::GetStopInfo): Use new SoftSignal() 632*30fdc8d8SChris Lattner accessor. 633*30fdc8d8SChris Lattner (MachException::Data::DumpStopReason): Ditto. 634*30fdc8d8SChris Lattner (MachException::Message::Reply): Added better logging and log using the 635*30fdc8d8SChris Lattner soft signal if our task matches that in the exception. 636*30fdc8d8SChris Lattner (MachException::Data::Dump): Added better logging. 637*30fdc8d8SChris Lattner * MachException.h (IsSoftSignal): Removed. 638*30fdc8d8SChris Lattner (SoftSignal): New function that returns the soft signal in the exception 639*30fdc8d8SChris Lattner data if there is one, or zero otherwise. 640*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::Suspend): Improved logging. 641*30fdc8d8SChris Lattner (MachProcess::Resume): Ditto. 642*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Handle the case where the process is told 643*30fdc8d8SChris Lattner to resume with a signal by matching the signal up to the thread that had 644*30fdc8d8SChris Lattner the soft signal if no thread id is specified. 645*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::Suspend): Improved logging. 646*30fdc8d8SChris Lattner (MachThread::Resume): Improved logging. 647*30fdc8d8SChris Lattner (MachThread::RestoreSuspendCount): Improved logging. 648*30fdc8d8SChris Lattner (MachThread::Resume): Improved logging. 649*30fdc8d8SChris Lattner (MachThread::Dump): Improved logging. 650*30fdc8d8SChris Lattner * MachThreadList.cpp (MachThreadList::Dump): Improved logging. 651*30fdc8d8SChris Lattner 652*30fdc8d8SChris Lattner2008-10-22 Greg Clayton <[email protected]> 653*30fdc8d8SChris Lattner 654*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopMode): Added a new enum value 655*30fdc8d8SChris Lattner eRNBRunLoopModeInferiorAttaching. 656*30fdc8d8SChris Lattner (g_long_options): Added "--attach=PID" for attaching to existing processes 657*30fdc8d8SChris Lattner and "--launch=(auto|posix|fork|springboard)" options. 658*30fdc8d8SChris Lattner (RNBRunLoopLaunchInferior): Now launches process with new 659*30fdc8d8SChris Lattner nub_launch_flavor_t enum that can be overridden with the --launch option. 660*30fdc8d8SChris Lattner (RNBRunLoopLaunchAttaching): New function for attaching to existing 661*30fdc8d8SChris Lattner processes. 662*30fdc8d8SChris Lattner (main): Added command line option support for the "--attach" and "--launch" 663*30fdc8d8SChris Lattner options and added attach to pid support and better logging. 664*30fdc8d8SChris Lattner * DNB.cpp/h: (DNBProcessLaunch): Added nub_launch_flavor_t and error 665*30fdc8d8SChris Lattner parameter for more precise control when launching processes. 666*30fdc8d8SChris Lattner (DNBProcessSBLaunch): Removed function as launching with SpringBoard can 667*30fdc8d8SChris Lattner now be done using DNBProcessLaunch with launch_flavor being set to 668*30fdc8d8SChris Lattner eLaunchTypeSpringBoard (arm only). 669*30fdc8d8SChris Lattner (DNBProcessSBAttach): Removed function (SpringBoard processes are now auto 670*30fdc8d8SChris Lattner detected in the MachProcess::AttachForDebug function on ARM). 671*30fdc8d8SChris Lattner * DNBDefs.h (NUB_GENERIC_ERROR): New generic error definition. 672*30fdc8d8SChris Lattner (nub_launch_flavor_t): New enumeration used for control over process 673*30fdc8d8SChris Lattner launching. 674*30fdc8d8SChris Lattner * MachProcess.cpp (IsSBProcess): New function. 675*30fdc8d8SChris Lattner (MachProcess::AttachForDebug): Removed flags parameter that was being used 676*30fdc8d8SChris Lattner for SpringBoard flags and we now detect if a process belongs to SpringBoard 677*30fdc8d8SChris Lattner by calling IsSBProcess. 678*30fdc8d8SChris Lattner (MachProcess::LaunchForDebug): Now has launch parameter that tells it how 679*30fdc8d8SChris Lattner to launch the inferior process and there is also an error code that gets 680*30fdc8d8SChris Lattner returned. This function can now launch using fork + exec, posix_spawn, 681*30fdc8d8SChris Lattner or SpringBoard on ARM targets. 682*30fdc8d8SChris Lattner (MachProcess::SBLaunchForDebug): Now uses DNBError reference instead of 683*30fdc8d8SChris Lattner uint32_t pointer for the error code. 684*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Ditto. 685*30fdc8d8SChris Lattner 686*30fdc8d8SChris Lattner2008-10-22 Greg Clayton <[email protected]> 687*30fdc8d8SChris Lattner 688*30fdc8d8SChris Lattner * MacOSX/arm/DNBArchImpl.cpp (DNBArchMachARM::GetRegisterValue): Set 689*30fdc8d8SChris Lattner register value to a uint32 value instead of a float64 value for s0 - 690*30fdc8d8SChris Lattner s31. 691*30fdc8d8SChris Lattner 692*30fdc8d8SChris Lattner2008-10-17 Greg Clayton <[email protected]> 693*30fdc8d8SChris Lattner 694*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Don't listen for 695*30fdc8d8SChris Lattner the qLaunchSuccess if we aren't doing a lockdown connnection. 696*30fdc8d8SChris Lattner 697*30fdc8d8SChris Lattner2008-10-13 Greg Clayton <[email protected]> 698*30fdc8d8SChris Lattner 699*30fdc8d8SChris Lattner * RNBRemote.h (class RNBRemote): Added m_watchpoints member. 700*30fdc8d8SChris Lattner * DNB.cpp (DNBBreakpointSet): Added boolean hardware parameter for 701*30fdc8d8SChris Lattner requesting that a hardware breakpoint be set. 702*30fdc8d8SChris Lattner (DNBWatchpointSet): New function. 703*30fdc8d8SChris Lattner (DNBWatchpointClear): New function. 704*30fdc8d8SChris Lattner (DNBWatchpointGetHitCount): New function. 705*30fdc8d8SChris Lattner (DNBWatchpointGetIgnoreCount): New function. 706*30fdc8d8SChris Lattner (DNBWatchpointSetIgnoreCount): New function. 707*30fdc8d8SChris Lattner (DNBWatchpointSetCallback): New function. 708*30fdc8d8SChris Lattner (DNBWatchpointPrint): New function. 709*30fdc8d8SChris Lattner * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Modified to emit 710*30fdc8d8SChris Lattner a single DNBLog() call so there aren't multiple newlines when logging 711*30fdc8d8SChris Lattner to ASL. 712*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Use new 713*30fdc8d8SChris Lattner process state changed events. 714*30fdc8d8SChris Lattner * DNBBreakpoint.h (class DNBBreakpoint): Removed m_state member and 715*30fdc8d8SChris Lattner added m_tid, m_enabled, m_hw_preferred, m_is_watchpoint, m_watch_read, 716*30fdc8d8SChris Lattner m_watch_write, and m_hw_index. 717*30fdc8d8SChris Lattner (DNBBreakpoint::ThreadID()): New accessor. 718*30fdc8d8SChris Lattner (DNBBreakpoint::IsEnabled()): New accessor. 719*30fdc8d8SChris Lattner (DNBBreakpoint::SetEnabled()): New accessor. 720*30fdc8d8SChris Lattner (DNBBreakpoint::IsWatchpoint()): New accessor. 721*30fdc8d8SChris Lattner (DNBBreakpoint::IsBreakpoint()): New accessor. 722*30fdc8d8SChris Lattner (DNBBreakpoint::SetIsWatchpoint()): New accessor. 723*30fdc8d8SChris Lattner (DNBBreakpoint::WatchpointRead()): New accessor. 724*30fdc8d8SChris Lattner (DNBBreakpoint::WatchpointWrite()): New accessor. 725*30fdc8d8SChris Lattner (DNBBreakpoint::HardwarePreferred()): New accessor. 726*30fdc8d8SChris Lattner (DNBBreakpoint::IsHardware()): New accessor. 727*30fdc8d8SChris Lattner (DNBBreakpoint::GetHardwareIndex()): New accessor. 728*30fdc8d8SChris Lattner (DNBBreakpoint::SetHardwareIndex()): New accessor. 729*30fdc8d8SChris Lattner (DNBBreakpoint::ThreadID()): New accessor. 730*30fdc8d8SChris Lattner (DNBBreakpoint::GetState()): Removed accessor. 731*30fdc8d8SChris Lattner (DNBBreakpoint::SetState()): Removed accessor. 732*30fdc8d8SChris Lattner (DNBBreakpoint::AddBreakpoint()): Renamed to Add(). 733*30fdc8d8SChris Lattner (DNBBreakpoint::RemoveBreakpoint()): Renamed to Remove(). 734*30fdc8d8SChris Lattner (DNBBreakpoint::FindBreakIDForAddress()): Renamed to FindIDByAddress(). 735*30fdc8d8SChris Lattner (DNBBreakpoint::ShouldStopAtBreakpoint()): Renamed to ShouldStop(). 736*30fdc8d8SChris Lattner (DNBBreakpoint::SetBreakpointCallback()): Renamed to SetCallback(). 737*30fdc8d8SChris Lattner (DNBBreakpoint::FindBreakpointWithAddress()): Renamed to 738*30fdc8d8SChris Lattner FindByAddress(). 739*30fdc8d8SChris Lattner (DNBBreakpoint::FindBreakpointWithBreakID()): Renamed to FindByID(). 740*30fdc8d8SChris Lattner (DNBBreakpoint::GetBreakpointAtIndex()): Renamed to GetByIndex(). 741*30fdc8d8SChris Lattner * FunctionProfiler.h: New header for subclass of DNBRuntimeAction. 742*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_v): Use new process state 743*30fdc8d8SChris Lattner changed events. 744*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_z): Implement the hardware breakpoint and 745*30fdc8d8SChris Lattner watchpoint commands z1, Z1, z2, Z2, z3 and Z3 746*30fdc8d8SChris Lattner * PThreadEvent.h (PThreadEvent::GetEventBits): Made member function 747*30fdc8d8SChris Lattner const. 748*30fdc8d8SChris Lattner (PThreadEvent::WaitForSetEvents): Ditto. 749*30fdc8d8SChris Lattner (PThreadEvent::WaitForEventsToReset): Ditto. 750*30fdc8d8SChris Lattner (PThreadEvent::WaitForResetAck): Ditto. 751*30fdc8d8SChris Lattner (PThreadEvent::m_mutex): Made class member mutable. 752*30fdc8d8SChris Lattner (PThreadEvent::m_set_condition): Made class member mutable. 753*30fdc8d8SChris Lattner (PThreadEvent::m_reset_condition): New mutable class member. 754*30fdc8d8SChris Lattner * ProfileObjectiveC.cpp 755*30fdc8d8SChris Lattner * DNBArch.h (DNBArch::NotifyException): Now has default implementation 756*30fdc8d8SChris Lattner that returns false. 757*30fdc8d8SChris Lattner (DNBArch::NumSupportedHardwareBreakpoints): New virtual member 758*30fdc8d8SChris Lattner function with a default implementation. 759*30fdc8d8SChris Lattner (DNBArch::NumSupportedHardwareWatchpoints): Ditto. 760*30fdc8d8SChris Lattner (DNBArch::EnableHardwareBreakpoint): Ditto. 761*30fdc8d8SChris Lattner (DNBArch::EnableHardwareWatchpoint): Ditto. 762*30fdc8d8SChris Lattner (DNBArch::DisableHardwareBreakpoint): Ditto. 763*30fdc8d8SChris Lattner (DNBArch::DisableHardwareWatchpoint): Ditto. 764*30fdc8d8SChris Lattner * DNB.h (DNBBreakpointSet): New take a HARDWARE parameter that allows 765*30fdc8d8SChris Lattner requests for setting hardware breakpoints. 766*30fdc8d8SChris Lattner (DNBWatchpointSet): New function prototype. 767*30fdc8d8SChris Lattner (DNBWatchpointClear): New function prototype. 768*30fdc8d8SChris Lattner (DNBWatchpointGetHitCount): New function prototype. 769*30fdc8d8SChris Lattner (DNBWatchpointGetIgnoreCount): New function prototype. 770*30fdc8d8SChris Lattner (DNBWatchpointSetIgnoreCount): New function prototype. 771*30fdc8d8SChris Lattner (DNBWatchpointSetCallback): New function prototype. 772*30fdc8d8SChris Lattner (DNBWatchpointPrint): New function prototype. 773*30fdc8d8SChris Lattner * MacOSX/arm/DNBArchImpl.cpp: Added hardware breakpoint and watchpoint 774*30fdc8d8SChris Lattner support for ARM. 775*30fdc8d8SChris Lattner (DNBArchMachARM::GetCPUType): New function. 776*30fdc8d8SChris Lattner (DNBArchMachARM::DumpDBGState): New function. 777*30fdc8d8SChris Lattner (DNBArchMachARM::GetDBGState): New function. 778*30fdc8d8SChris Lattner (DNBArchMachARM::SetDBGState): New function. 779*30fdc8d8SChris Lattner (DNBArchMachARM::EnableHardwareSingleStep): New function. 780*30fdc8d8SChris Lattner (DNBArchMachARM::EnableHardwareBreakpoint): New function. 781*30fdc8d8SChris Lattner (DNBArchMachARM::NotifyException): Removed. 782*30fdc8d8SChris Lattner (DNBArchMachARM::DisableHardwareBreakpoint): New function. 783*30fdc8d8SChris Lattner (DNBArchMachARM::EnableHardwareWatchpoint): New function. 784*30fdc8d8SChris Lattner (DNBArchMachARM::DisableHardwareWatchpoint): New function. 785*30fdc8d8SChris Lattner * MacOSX/MachThread.cpp (MachThread::Suspend): Added better logging. 786*30fdc8d8SChris Lattner (MachThread::Resume): Ditto. 787*30fdc8d8SChris Lattner (MachThread::RestoreSuspendCount): Ditto. 788*30fdc8d8SChris Lattner (MachThread::Dump): Ditto. 789*30fdc8d8SChris Lattner (MachThread::EnableHardwareBreakpoint): New function. 790*30fdc8d8SChris Lattner (MachThread::EnableHardwareWatchpoint): New function. 791*30fdc8d8SChris Lattner (MachThread::DisableHardwareBreakpoint): New function. 792*30fdc8d8SChris Lattner (MachThread::DisableHardwareWatchpoint): New function. 793*30fdc8d8SChris Lattner * MacOSX/MachThreadList.h (MachThreadList::GetLastError): Removed. 794*30fdc8d8SChris Lattner (MachThread::EnableHardwareBreakpoint): New prototype. 795*30fdc8d8SChris Lattner (MachThread::DisableHardwareBreakpoint): New prototype. 796*30fdc8d8SChris Lattner (MachThread::EnableHardwareWatchpoint): New prototype. 797*30fdc8d8SChris Lattner (MachThread::DisableHardwareWatchpoint): New prototype. 798*30fdc8d8SChris Lattner (class MachThread): Remove m_err member variable. 799*30fdc8d8SChris Lattner * MacOSX/ppc/DNBArchImpl.cpp (DNBArchMachPPC::GetCPUType) New 800*30fdc8d8SChris Lattner function. 801*30fdc8d8SChris Lattner (DNBArchMachPPC::NotifyException): Removed. 802*30fdc8d8SChris Lattner * MacOSX/ppc/DNBArchImpl.h (DNBArchMachPPC::NotifyException): Removed. 803*30fdc8d8SChris Lattner * MacOSX/MachThread.h (MachThread::EnableHardwareBreakpoint): New 804*30fdc8d8SChris Lattner prototype. 805*30fdc8d8SChris Lattner (MachThread::EnableHardwareWatchpoint): New prototype. 806*30fdc8d8SChris Lattner (MachThread::DisableHardwareBreakpoint): New prototype. 807*30fdc8d8SChris Lattner (MachThread::DisableHardwareWatchpoint): New prototype. 808*30fdc8d8SChris Lattner (class MachThread): Renambed class member m_exception to 809*30fdc8d8SChris Lattner m_stop_exception. 810*30fdc8d8SChris Lattner * MacOSX/MachProcess.cpp (MachProcess::SetState): Updated to use new 811*30fdc8d8SChris Lattner process event enumerations. 812*30fdc8d8SChris Lattner (MachProcess::PrivateResume): Added better logging. 813*30fdc8d8SChris Lattner (MachProcess::CreateBreakpoint): Added bool HARDWARE parameter for 814*30fdc8d8SChris Lattner requesting hardware breakpoints. 815*30fdc8d8SChris Lattner (MachProcess::CreateWatchpoint): New function. 816*30fdc8d8SChris Lattner (MachProcess::DisableAllWatchpoints): New function. 817*30fdc8d8SChris Lattner (MachProcess::DisableWatchpoint): New function. 818*30fdc8d8SChris Lattner (MachProcess::DumpWatchpoint): New function. 819*30fdc8d8SChris Lattner (MachProcess::EnableBreakpoint): Enabled breakpoints in hardware if 820*30fdc8d8SChris Lattner requested and supported. 821*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Disable hardware breakpoints if that 822*30fdc8d8SChris Lattner is how they were set. 823*30fdc8d8SChris Lattner (MachProcess::EnableWatchpoint): New function. 824*30fdc8d8SChris Lattner (MachProcess::ExceptionMessageBundleComplete): Wait for the 825*30fdc8d8SChris Lattner eEventProcessRunningStateChanged event to be reset before changing 826*30fdc8d8SChris Lattner state to stopped to avoid race condition with very fast start/stops. 827*30fdc8d8SChris Lattner (MachProcess::LaunchForDebug): Added posix_spawn support. 828*30fdc8d8SChris Lattner (MachProcess::PosixSpawnChildForPTraceDebugging): New function. 829*30fdc8d8SChris Lattner * MacOSX/i386/DNBArchImpl.cpp (DNBArchMachI386::GetCPUType): New 830*30fdc8d8SChris Lattner function. 831*30fdc8d8SChris Lattner * MacOSX/i386/DNBArchImpl.h (DNBArchMachI386::GetCPUType): New 832*30fdc8d8SChris Lattner prototype. 833*30fdc8d8SChris Lattner * MacOSX/MachProcess.h (PosixSpawnChildForPTraceDebugging): New 834*30fdc8d8SChris Lattner prototype. 835*30fdc8d8SChris Lattner * MacOSX/MachException.cpp (class MachException::ThreadMessage): 836*30fdc8d8SChris Lattner Renamed class to MachException::Data. 837*30fdc8d8SChris Lattner * MacOSX/MachThreadList.cpp (class MachThreadList): Removed m_err 838*30fdc8d8SChris Lattner class member. 839*30fdc8d8SChris Lattner (MachThreadList::EnableHardwareBreakpoint): New function. 840*30fdc8d8SChris Lattner (MachThreadList::DisableHardwareBreakpoint): New function. 841*30fdc8d8SChris Lattner (MachThreadList::EnableHardwareWatchpoint): New function. 842*30fdc8d8SChris Lattner (MachThreadList::DisableHardwareWatchpoint): New function. 843*30fdc8d8SChris Lattner * MacOSX/MachException.h (class MachException::ThreadMessage): 844*30fdc8d8SChris Lattner Renamed class to MachException::Data. 845*30fdc8d8SChris Lattner * DNBDefs.h (nub_watch_t): New typedef. 846*30fdc8d8SChris Lattner (INVALID_NUB_HW_INDEX): New macro definition. 847*30fdc8d8SChris Lattner (WATCH_TYPE_READ): New macro definition. 848*30fdc8d8SChris Lattner (WATCH_TYPE_WRITE): New macro definition. 849*30fdc8d8SChris Lattner (NUB_STATE_IS_RUNNING): New macro to see if state is a running state. 850*30fdc8d8SChris Lattner (NUB_STATE_IS_STOPPED): New macro to see if state is a stopped state. 851*30fdc8d8SChris Lattner (eEventProcessStateChanged): Deprecated. 852*30fdc8d8SChris Lattner (eEventProcessRunningStateChanged): New process event state. 853*30fdc8d8SChris Lattner (eEventProcessStoppedStateChanged): New process event state. 854*30fdc8d8SChris Lattner (LOG_WATCHPOINTS): New macro definition for logging watchpoints. 855*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Use new process 856*30fdc8d8SChris Lattner event states. 857*30fdc8d8SChris Lattner * FunctionProfiler.cpp: New class that allows single stepping through 858*30fdc8d8SChris Lattner an address range for tracing exact call graphs. 859*30fdc8d8SChris Lattner 860*30fdc8d8SChris Lattner2008-09-22 Greg Clayton <[email protected]> 861*30fdc8d8SChris Lattner 862*30fdc8d8SChris Lattner * RNBRemote.h (GetContinueThread): If the continue thread is zero or 863*30fdc8d8SChris Lattner -1 then return GetCurrentThread(). 864*30fdc8d8SChris Lattner * RNBRemote.cpp (m_packets): Made the vCont functions call 865*30fdc8d8SChris Lattner RNBRemote::HandlePacket_v(). 866*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_H): Cleaned up whitespace. 867*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_last_signal): Return actual signal values for 868*30fdc8d8SChris Lattner EXE_SOFTWARE/EXC_SOFT_SIGNAL mach exceptions. 869*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_v): Implemented the 'vCont?' and 'vCont;' 870*30fdc8d8SChris Lattner packets. 871*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_c): Handle the case where an address is 872*30fdc8d8SChris Lattner provided. 873*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_C): Implemented the continue with signal 874*30fdc8d8SChris Lattner including when an address is provided. 875*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_S): Implemented the step with signal 876*30fdc8d8SChris Lattner including when an address is provided. 877*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessResume): Pass 0 as the signal when resuming 878*30fdc8d8SChris Lattner a process without specifying a thread. 879*30fdc8d8SChris Lattner (DNBThreadResume): Pass 0 as the signal when resuming a specific thread. 880*30fdc8d8SChris Lattner (DNBThreadResumeWithSignal): New function. 881*30fdc8d8SChris Lattner * DNB.h (DNBThreadResumeWithSignal): New prototype. 882*30fdc8d8SChris Lattner * MachException.h (MachException::Message::Reply): Added a signal 883*30fdc8d8SChris Lattner parameter. 884*30fdc8d8SChris Lattner * MachException.cpp (MachException::Message::Reply): Update the thread 885*30fdc8d8SChris Lattner with the new SIGNAL parameter instead of always zero so signals can be 886*30fdc8d8SChris Lattner passed on to programs. 887*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::Resume): Added a signal parameter. 888*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::PrivateResume): Added a signal parameter. 889*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::Resume): Pass new SIGNAL parameter to 890*30fdc8d8SChris Lattner MachProcess::PrivateResume. 891*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::PrivateResume): Pass new SIGNAL 892*30fdc8d8SChris Lattner parameter to the mach exception reply. 893*30fdc8d8SChris Lattner 894*30fdc8d8SChris Lattner2008-08-08 Greg Clayton <[email protected]> 895*30fdc8d8SChris Lattner 896*30fdc8d8SChris Lattner * DNB.cpp (gProcessMap): Removed static C++ global. 897*30fdc8d8SChris Lattner (GetProcessMap): New Function. 898*30fdc8d8SChris Lattner (AddProcessToMap): New function. 899*30fdc8d8SChris Lattner (RemoveProcessFromMap): New function. 900*30fdc8d8SChris Lattner (GetProcessSP): Use new GetProcessMap function to get process list. 901*30fdc8d8SChris Lattner 902*30fdc8d8SChris Lattner2008-07-30 Greg Clayton <[email protected]> 903*30fdc8d8SChris Lattner 904*30fdc8d8SChris Lattner * debugserver-entitlements.plist (get-task-allow): Removed. 905*30fdc8d8SChris Lattner (run-invalid-allow): Added boolean value set to TRUE. 906*30fdc8d8SChris Lattner 907*30fdc8d8SChris Lattner2008-04-18 Greg Clayton <[email protected]> 908*30fdc8d8SChris Lattner 909*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::Task): Added getuid(), geteuid(), 910*30fdc8d8SChris Lattner getgid(), getegid() to the log message if task for pid fails. 911*30fdc8d8SChris Lattner 912*30fdc8d8SChris Lattner2008-04-07 Greg Clayton <[email protected]> 913*30fdc8d8SChris Lattner 914*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::LaunchStatusAsString): Removed unused 915*30fdc8d8SChris Lattner tmp_str variable. 916*30fdc8d8SChris Lattner 917*30fdc8d8SChris Lattner2008-04-04 Greg Clayton <[email protected]> 918*30fdc8d8SChris Lattner 919*30fdc8d8SChris Lattner * CFString.cpp/h (UTF8): Made a static function that can convert 920*30fdc8d8SChris Lattner a CFStringRef to UTF8. 921*30fdc8d8SChris Lattner 922*30fdc8d8SChris Lattner2008-04-04 Greg Clayton <[email protected]> 923*30fdc8d8SChris Lattner 924*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Make sure we exit after we send the 925*30fdc8d8SChris Lattner application list. 926*30fdc8d8SChris Lattner 927*30fdc8d8SChris Lattner2008-04-04 Greg Clayton <[email protected]> 928*30fdc8d8SChris Lattner 929*30fdc8d8SChris Lattner * RNBServices.h (IsSBProcess): New prototype; 930*30fdc8d8SChris Lattner * RNBServices.cpp (IsSBProcess): New function that returns true it 931*30fdc8d8SChris Lattner SpringBoard owns or knows about the process. 932*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_v): Made attach work correctly. 933*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessSBAttach): New function for use when attaching to 934*30fdc8d8SChris Lattner a process owned by SpringBoard. 935*30fdc8d8SChris Lattner (DNBProcessAttach): Fixed an issue where a local was shadowing a 936*30fdc8d8SChris Lattner parameter. 937*30fdc8d8SChris Lattner * DNB.h (DNBProcessSBAttach): New prototype. 938*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::AttachForDebug): AttachForDebug now 939*30fdc8d8SChris Lattner takes some flags so it knows to enable SpringBoard functionality. 940*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::AttachForDebug): Added flags parameter 941*30fdc8d8SChris Lattner to prototype. 942*30fdc8d8SChris Lattner 943*30fdc8d8SChris Lattner2008-04-04 Greg Clayton <[email protected]> 944*30fdc8d8SChris Lattner 945*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Handle the new 946*30fdc8d8SChris Lattner attach packet and watch for connection being lost. 947*30fdc8d8SChris Lattner (main): handle the --applist option when there we aren't using lockdown 948*30fdc8d8SChris Lattner by printing the results to stdout and exiting with appropriate error code 949*30fdc8d8SChris Lattner if we failed. Also handle the new prototype for ListApplications. 950*30fdc8d8SChris Lattner * RNBServices.h (ListApplications): Change first parameter to be a std::string 951*30fdc8d8SChris Lattner that will get the contents of the plist so we can use this for more than 952*30fdc8d8SChris Lattner just lockdown. 953*30fdc8d8SChris Lattner * RNBServices.cpp (ListApplications): Change first parameter to be a std::string 954*30fdc8d8SChris Lattner that will get the contents of the plist so we can use this for more than 955*30fdc8d8SChris Lattner just lockdown and also fixed the logic so we actually create a full list of 956*30fdc8d8SChris Lattner applications instead of just overwriting the first entry. 957*30fdc8d8SChris Lattner * RNBRemote.h (PacketEnum): Added a new 'vattach' enum for the "vAttach;PID" 958*30fdc8d8SChris Lattner gdb remote command. 959*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_v): New prototype; 960*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): add the vattach packet definition 961*30fdc8d8SChris Lattner to m_packets. 962*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_v): New function that handles attach to a process. 963*30fdc8d8SChris Lattner 964*30fdc8d8SChris Lattner2008-04-03 Jim Ingham <[email protected]> 965*30fdc8d8SChris Lattner 966*30fdc8d8SChris Lattner * RNBRemote.h: Add query_launch_success to packet enum. 967*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable_): Add query_launch_success. 968*30fdc8d8SChris Lattner (HandlePacket_q): Handle query_launch_success. 969*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessSBLaunch): Pass in launch_retval. 970*30fdc8d8SChris Lattner * DNB.h: Change prototype of DNBProcessSBLaunch to take launch_retval. 971*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::LaunchStatusAsString): New function. 972*30fdc8d8SChris Lattner * RNBContext.h (RNBContext): Add m_launch_status & accessors. 973*30fdc8d8SChris Lattner * macosx/MachProcess.cpp (MachProcess::SBLaunchForDebug): Pass launch_retval. 974*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Accept & set launch_retval. 975*30fdc8d8SChris Lattner * Macosx/MachProcess.h: Change prototypes of SBLaunchForDebug & 976*30fdc8d8SChris Lattner ForkChildForPTraceDebugging to accept launch_retval. 977*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Get the launch status and 978*30fdc8d8SChris Lattner put it in the context, then wait for the qLaunchStatus packet. 979*30fdc8d8SChris Lattner 980*30fdc8d8SChris Lattner2008-04-03 Greg Clayton <[email protected]> 981*30fdc8d8SChris Lattner 982*30fdc8d8SChris Lattner * com.apple.debugserver.plist: Changed plist so debugserver 983*30fdc8d8SChris Lattner runs as mobile user. 984*30fdc8d8SChris Lattner * com.apple.debugserver.applist.plist: Ditto. 985*30fdc8d8SChris Lattner 986*30fdc8d8SChris Lattner2008-04-03 Greg Clayton <[email protected]> 987*30fdc8d8SChris Lattner 988*30fdc8d8SChris Lattner * MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging): 989*30fdc8d8SChris Lattner Increased SBS application launch timeout to 30 seconds. 990*30fdc8d8SChris Lattner 991*30fdc8d8SChris Lattner2008-03-27 Christopher Friesen <[email protected]> 992*30fdc8d8SChris Lattner 993*30fdc8d8SChris Lattner * RNBServices.h: Pass tasks from SpringBoard as a plist 994*30fdc8d8SChris Lattner * RNBServices.cpp: Ditto. 995*30fdc8d8SChris Lattner * test-remotenub.cpp: added --applist flag 996*30fdc8d8SChris Lattner * com.apple.debugserver.applist.plist: Agent plist 997*30fdc8d8SChris Lattner 998*30fdc8d8SChris Lattner2008-03-17 Jim Ingham <[email protected]> 999*30fdc8d8SChris Lattner 1000*30fdc8d8SChris Lattner * DNB.h: Pass envp to DNBProcessLaunch & DNBProcessSBLaunch. 1001*30fdc8d8SChris Lattner * DNB.cpp: Ditto. 1002*30fdc8d8SChris Lattner * MachProcess.h: Ditto for *LaunchForDebug and 1003*30fdc8d8SChris Lattner *ForkChildForPtraceDebugging. 1004*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::LaunchForDebug): Pass on envp. 1005*30fdc8d8SChris Lattner (MachProcess::SBLaunchForDebug): Ditto. 1006*30fdc8d8SChris Lattner (MachProcess::ForkChildForPtraceDebugging): Accept envp, haven't actually 1007*30fdc8d8SChris Lattner implemented the passing yet. 1008*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPtraceDebuggin): Accept envp, convert to 1009*30fdc8d8SChris Lattner CFDictionary and pass to SBSLaunchApplication. 1010*30fdc8d8SChris Lattner * RNBContext.h: Add environment to the context. 1011*30fdc8d8SChris Lattner * RBNContext.cpp (RNBContext::EnvironmentAtIndex): New function. 1012*30fdc8d8SChris Lattner * RNBRemote.h: Add set_environment_variable to the PacketEnum. 1013*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): Add QEnvironment:. 1014*30fdc8d8SChris Lattner * (RNBRemote::HandlePacket_Q): Ingest the environment variable. 1015*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoppLaunchInferior): Convert the env 1016*30fdc8d8SChris Lattner array in the context into an array, and pass it to the DNBProcess*Launch 1017*30fdc8d8SChris Lattner methods. 1018*30fdc8d8SChris Lattner 1019*30fdc8d8SChris Lattner2008-03-17 Greg Clayton <[email protected]> 1020*30fdc8d8SChris Lattner 1021*30fdc8d8SChris Lattner * DNBBreakpoint.cpp (DNBBreakpointList::GetBreakpointAtIndex): New 1022*30fdc8d8SChris Lattner functions (const and non-const versions). 1023*30fdc8d8SChris Lattner * DNBBreakpoint.h (DNBBreakpointList::GetBreakpointAtIndex): New 1024*30fdc8d8SChris Lattner prototypes (const and non-const versions). 1025*30fdc8d8SChris Lattner * DNBError.h (DNBError::Success()): Don't use KERN_SUCCESS define. 1026*30fdc8d8SChris Lattner (DNBError::Fail()): Don't use KERN_SUCCESS define. 1027*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::DisableAllBreakpoints): New function. 1028*30fdc8d8SChris Lattner (MachProcess::Detach): Added initial implementation that will halt 1029*30fdc8d8SChris Lattner the process, disable all breakpoints and call PT_DETACH. 1030*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::DisableAllBreakpoints): New prototype. 1031*30fdc8d8SChris Lattner 1032*30fdc8d8SChris Lattner2008-03-04 Greg Clayton <[email protected]> 1033*30fdc8d8SChris Lattner 1034*30fdc8d8SChris Lattner * RNBRemote.h (RNBRemote::SendHexEncodedBytePacket): New prototype. 1035*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::SendHexEncodedBytePacket): New function. 1036*30fdc8d8SChris Lattner (RNBRemote::SendSTDOUTPacket): Use SendHexEncodedBytePacket function 1037*30fdc8d8SChris Lattner to send bytes. 1038*30fdc8d8SChris Lattner (RNBRemote::SendSTDERRPacket): Ditto. 1039*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_q): Return a valid thread info string for 1040*30fdc8d8SChris Lattner qThreadExtraInfo queries. 1041*30fdc8d8SChris Lattner * DNB.cpp (DNBThreadPrintStopReason): Commented out unused function. 1042*30fdc8d8SChris Lattner (DNBThreadGetInfo): New function. 1043*30fdc8d8SChris Lattner * DNB.h (DNBThreadPrintStopReason): Commented out prototype. 1044*30fdc8d8SChris Lattner (DNBThreadGetInfo): New prototype. 1045*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::GetThreadInfo): New function. 1046*30fdc8d8SChris Lattner * MachProcess.h (MachProcess::GetThreadInfo): New prototype. 1047*30fdc8d8SChris Lattner * MachThreadList.cpp (MachThreadList::GetThreadInfo): New function. 1048*30fdc8d8SChris Lattner * MachThreadList.h (MachThreadList::GetThreadInfo): New prototype. 1049*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::GetBasicInfoAsString): New function. 1050*30fdc8d8SChris Lattner (MachThread::InferiorThreadID): New function. 1051*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::GetBasicInfoAsString): New prototype. 1052*30fdc8d8SChris Lattner (MachThread::InferiorThreadID): New prototype. 1053*30fdc8d8SChris Lattner 1054*30fdc8d8SChris Lattner2008-02-27 Greg Clayton <[email protected]> 1055*30fdc8d8SChris Lattner 1056*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Set the 1057*30fdc8d8SChris Lattner current thread when we notify a thread has stopped to subsequent 1058*30fdc8d8SChris Lattner g and p packets get the correct data. 1059*30fdc8d8SChris Lattner 1060*30fdc8d8SChris Lattner2008-02-26 Jason Molenda ([email protected]) 1061*30fdc8d8SChris Lattner 1062*30fdc8d8SChris Lattner * RNBRemote.h: Add query_thread_extra_info enum. 1063*30fdc8d8SChris Lattner * RNBRemote.cpp: Add support for qThreadExtraInfo. 1064*30fdc8d8SChris Lattner Currently we return 'Ok' as the packet status for 1065*30fdc8d8SChris Lattner every thread. 1066*30fdc8d8SChris Lattner 1067*30fdc8d8SChris Lattner2008-02-26 Jason Molenda ([email protected]) 1068*30fdc8d8SChris Lattner 1069*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_q): Correct handling 1070*30fdc8d8SChris Lattner of qfThreadInfo/qsThreadInfo. 1071*30fdc8d8SChris Lattner 1072*30fdc8d8SChris Lattner2008-02-20 Jason Molenda ([email protected]) 1073*30fdc8d8SChris Lattner 1074*30fdc8d8SChris Lattner * RNBRemote.h: Change default for gdb's max incoming packet size to 1075*30fdc8d8SChris Lattner reflect the real default size. 1076*30fdc8d8SChris Lattner * RNBRemote.cpp (HandlePacket_Q): Correct the string comparisions for 1077*30fdc8d8SChris Lattner the QSetMaxPayloadSize and QSetMaxPacketSize packets. 1078*30fdc8d8SChris Lattner 1079*30fdc8d8SChris Lattner2008-02-19 Christopher Friesen <[email protected]> 1080*30fdc8d8SChris Lattner 1081*30fdc8d8SChris Lattner * CFDataFormatters.c: CoreFoundation data formatters added to project. 1082*30fdc8d8SChris Lattner 1083*30fdc8d8SChris Lattner2008-02-19 Jason Molenda ([email protected]) 1084*30fdc8d8SChris Lattner 1085*30fdc8d8SChris Lattner * RNBRemote.h: Record the max payload size, not the max packet 1086*30fdc8d8SChris Lattner size for less ambiguous meaning. 1087*30fdc8d8SChris Lattner * RNBRemote.cpp: Add support for QSetMaxPayloadSize: packet which 1088*30fdc8d8SChris Lattner should have a clearer meaning than QSetMaxPacketSize. 1089*30fdc8d8SChris Lattner QSetMaxPacketSize will be removed once we get have a chance to get 1090*30fdc8d8SChris Lattner a new debugserver and gdb submitted. 1091*30fdc8d8SChris Lattner 1092*30fdc8d8SChris Lattner2008-02-18 Jason Molenda ([email protected]) 1093*30fdc8d8SChris Lattner 1094*30fdc8d8SChris Lattner * RNBRemote.h: Make default size 1024. 1095*30fdc8d8SChris Lattner * RNBRemote.cpp: Questionmark packet should stay under 1096*30fdc8d8SChris Lattner max_packet_size - 5 to allow for start, end, checksum and nul 1097*30fdc8d8SChris Lattner char bytes. 1098*30fdc8d8SChris Lattner 1099*30fdc8d8SChris Lattner2008-02-18 Jason Molenda ([email protected]) 1100*30fdc8d8SChris Lattner 1101*30fdc8d8SChris Lattner * RNBRemote.h: Add m_max_packet_size to class defn. 1102*30fdc8d8SChris Lattner * RNBRemote.cpp: Initialize it, use it. 1103*30fdc8d8SChris Lattner 1104*30fdc8d8SChris Lattner2008-02-18 Jason Molenda ([email protected]) 1105*30fdc8d8SChris Lattner 1106*30fdc8d8SChris Lattner * RNBRemote.h: Add set_max_packet_size. 1107*30fdc8d8SChris Lattner * RNBRemote.cpp: Add QSetMaxPacketSize packet handling. 1108*30fdc8d8SChris Lattner 1109*30fdc8d8SChris Lattner2008-02-18 Greg Clayton <[email protected]> 1110*30fdc8d8SChris Lattner 1111*30fdc8d8SChris Lattner * test-remotenub.cpp (HandleProcessStateChange): Call new 1112*30fdc8d8SChris Lattner RNBRemote::FlushSTDIO function. 1113*30fdc8d8SChris Lattner (RNBRunLoopInferiorExecuting): Ditto. 1114*30fdc8d8SChris Lattner * RNBRemote.h (RNBRemote::FlushSTDIO): New prototype. 1115*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::FlushSTDIO): New function to 1116*30fdc8d8SChris Lattner centralize the stdio. 1117*30fdc8d8SChris Lattner 1118*30fdc8d8SChris Lattner2008-02-18 Greg Clayton <[email protected]> 1119*30fdc8d8SChris Lattner 1120*30fdc8d8SChris Lattner * DNB.cpp (DNBProcessWaitForEvent): Added timeout pointer as 1121*30fdc8d8SChris Lattner parameter that can be NULL for infinite timeout to simplify 1122*30fdc8d8SChris Lattner the DNB interface. 1123*30fdc8d8SChris Lattner (DNBProcessTimedWaitForEvent): Removed function. 1124*30fdc8d8SChris Lattner * DNB.h (DNBProcessWaitForEvent): Added timeout argument. 1125*30fdc8d8SChris Lattner (DNBProcessTimedWaitForEvent): Removed prototype. 1126*30fdc8d8SChris Lattner * DNBTimer.h (DNBTimer::OffsetTimeOfDay): New function. 1127*30fdc8d8SChris Lattner * CFString.cpp (CFString::GetLength() const): New function. 1128*30fdc8d8SChris Lattner * CFString.h (CFString::GetLength() const): New prototype. 1129*30fdc8d8SChris Lattner * MachProcess.h (MachProcess class): Removed m_attached and 1130*30fdc8d8SChris Lattner added m_flags. 1131*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::AttachForDebug): Set m_flags 1132*30fdc8d8SChris Lattner to indicate we attached. 1133*30fdc8d8SChris Lattner (MachProcess::SBLaunchForDebug): Set m_flags to indicate we 1134*30fdc8d8SChris Lattner attached using SpringBoard and that we attached. 1135*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Changed to new 1136*30fdc8d8SChris Lattner SpringBoardServices API. 1137*30fdc8d8SChris Lattner (MachProcess::ThreadFunctionException): Added code that will 1138*30fdc8d8SChris Lattner renew a watchdog assertion when we launch apps through 1139*30fdc8d8SChris Lattner SpringBoardServices. 1140*30fdc8d8SChris Lattner * PThreadEvent.cpp (PThreadEvent::WaitForSetEvents): Simplified 1141*30fdc8d8SChris Lattner PThreadEvent API to have only one version of WaitForSetEvents 1142*30fdc8d8SChris Lattner that has an optional timeout pointer argument. 1143*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::StopProcessStatusThread): Adapt 1144*30fdc8d8SChris Lattner to new PThreadEvent API changes. 1145*30fdc8d8SChris Lattner (RNBContext::ThreadFunctionProcessStatus): Adapt to new 1146*30fdc8d8SChris Lattner DNBProcessWaitForEvent API changes. 1147*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::StopReadRemoteDataThread): Adapt 1148*30fdc8d8SChris Lattner to new PThreadEvent API changes. 1149*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Adapt to new 1150*30fdc8d8SChris Lattner DNBProcessWaitForEvent API changes. 1151*30fdc8d8SChris Lattner (RNBRunLoopInferiorExecuting): Process STDIO first, then 1152*30fdc8d8SChris Lattner incoming packets. 1153*30fdc8d8SChris Lattner 1154*30fdc8d8SChris Lattner2008-02-14 Jason Molenda ([email protected]) 1155*30fdc8d8SChris Lattner 1156*30fdc8d8SChris Lattner * MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging): 1157*30fdc8d8SChris Lattner Set mode bits on slave side of pty. 1158*30fdc8d8SChris Lattner 1159*30fdc8d8SChris Lattner2008-02-12 Greg Clayton <[email protected]> 1160*30fdc8d8SChris Lattner 1161*30fdc8d8SChris Lattner * DNB.cpp (DNBEnableLogging): Removed function. 1162*30fdc8d8SChris Lattner (DNBThreadPrintStopReason): Removed the file handle from this 1163*30fdc8d8SChris Lattner function and use DNBLog calls. 1164*30fdc8d8SChris Lattner * DNB.h (DNBEnableLogging): Removed function prototype. 1165*30fdc8d8SChris Lattner (DNBThreadPrintStopReason): Removed the file handle 1166*30fdc8d8SChris Lattner from the function prototype in favor of using DNBLog calls. 1167*30fdc8d8SChris Lattner * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle to use 1168*30fdc8d8SChris Lattner DNBLog for the logging and print a log line each time a full line 1169*30fdc8d8SChris Lattner is ready for output after caching it in a local buffer. 1170*30fdc8d8SChris Lattner * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle from 1171*30fdc8d8SChris Lattner prototype. 1172*30fdc8d8SChris Lattner * DNBDefs.h (DNBCallbackLog): New callback prototype for all 1173*30fdc8d8SChris Lattner logging. 1174*30fdc8d8SChris Lattner DNBLog.cpp(g_debug_opt): Renamed to d_debug and made it a file 1175*30fdc8d8SChris Lattner static. 1176*30fdc8d8SChris Lattner (DNBLogGetDebug): New accessor function for g_debug. 1177*30fdc8d8SChris Lattner (DNBLogSetDebug): New accessor function for g_debug. 1178*30fdc8d8SChris Lattner (g_verbose): Made into a file static and added accessors. 1179*30fdc8d8SChris Lattner (DNBLogGetVerbose): New accessor function for g_verbose. 1180*30fdc8d8SChris Lattner (DNBLogSetVerbose): New accessor function for g_verbose. 1181*30fdc8d8SChris Lattner (DNBLogSetLogCallback): New function call that registers a logging 1182*30fdc8d8SChris Lattner callback for all logging in libdebugnub.dylib and any code that 1183*30fdc8d8SChris Lattner loads it. 1184*30fdc8d8SChris Lattner (DNBLogToASL): Removed function as it is deprecated in favor of 1185*30fdc8d8SChris Lattner using DNBLogSetLogCallback to regsiter a callback function that 1186*30fdc8d8SChris Lattner implements the logging. 1187*30fdc8d8SChris Lattner (DNBLogToFile): Ditto. 1188*30fdc8d8SChris Lattner (DNBLogCloseLogFile): Ditto. 1189*30fdc8d8SChris Lattner (DNBLogToFile): Ditto. 1190*30fdc8d8SChris Lattner (DNBLogToFile): Ditto. 1191*30fdc8d8SChris Lattner (_DNBLogPuts): Removed unused function. 1192*30fdc8d8SChris Lattner (_DNBLogVAPrintf): Calls the callback function to do the logging 1193*30fdc8d8SChris Lattner if one has been registered. 1194*30fdc8d8SChris Lattner * DNBLog.h (DNBLOG_FLAG_FATAL): New defines that get passed to 1195*30fdc8d8SChris Lattner any registered logging callback functions. 1196*30fdc8d8SChris Lattner (DNBLOG_FLAG_FATAL): Ditto. 1197*30fdc8d8SChris Lattner (DNBLOG_FLAG_ERROR): Ditto. 1198*30fdc8d8SChris Lattner (DNBLOG_FLAG_WARNING): Ditto. 1199*30fdc8d8SChris Lattner (DNBLOG_FLAG_DEBUG): Ditto. 1200*30fdc8d8SChris Lattner (DNBLOG_FLAG_VERBOSE): Ditto. 1201*30fdc8d8SChris Lattner (DNBLOG_FLAG_THREADED): Ditto. 1202*30fdc8d8SChris Lattner (DNBLog*): All logging calls are now exported from libdebugnub.dylib 1203*30fdc8d8SChris Lattner so there aren't two copies (one in debugserver and one in debugnub). 1204*30fdc8d8SChris Lattner C99 vararg Macros wrap all logging calls so no var arg processing 1205*30fdc8d8SChris Lattner occurs when logging is disabled. 1206*30fdc8d8SChris Lattner * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Removed file 1207*30fdc8d8SChris Lattner handle and now use DNBLog calls. 1208*30fdc8d8SChris Lattner * DNBRegisterInfo.h (DNBRegisterValueClass::Dump): Removed file 1209*30fdc8d8SChris Lattner handle from prototype. 1210*30fdc8d8SChris Lattner * MachException.cpp (catch_mach_exception_raise_state_identity): 1211*30fdc8d8SChris Lattner Removed newlines from logging call. 1212*30fdc8d8SChris Lattner (catch_mach_exception_raise): Ditto. 1213*30fdc8d8SChris Lattner (MachException::Message::Dump): Removed file handle from params 1214*30fdc8d8SChris Lattner and removed newlines from logging call. 1215*30fdc8d8SChris Lattner (MachException::ThreadMessage::DumpStopReason): Removed file handle 1216*30fdc8d8SChris Lattner from params and use DNBLog for logging output. 1217*30fdc8d8SChris Lattner (MachException::ThreadMessage::Dump): Log using DNBLog instead of 1218*30fdc8d8SChris Lattner file handle. 1219*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::DumpThreadStoppedReason): Ditto. 1220*30fdc8d8SChris Lattner (MachProcess::ReadMemory): Ditto. 1221*30fdc8d8SChris Lattner (MachProcess::WriteMemory): Ditto. 1222*30fdc8d8SChris Lattner (ExceptionMessageBundleComplete): Ditto. 1223*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::Dump): Ditto. 1224*30fdc8d8SChris Lattner (MachThread::DumpRegisterState): Ditto. 1225*30fdc8d8SChris Lattner * MachThreadList.cpp (MachThreadList::DumpThreadStoppedReason): Ditto. 1226*30fdc8d8SChris Lattner (MachThreadList::Dump): Ditto. 1227*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): Use new function callback registration 1228*30fdc8d8SChris Lattner calls when enabling ASL logging. 1229*30fdc8d8SChris Lattner test-remotenub.cpp (ASLLogCallback): New function to handle all ASL 1230*30fdc8d8SChris Lattner logging. This function gets registered with libdebugnub.dylib when we 1231*30fdc8d8SChris Lattner want to log using ASL. 1232*30fdc8d8SChris Lattner (FileLogCallback): New function to handle all file logging. This 1233*30fdc8d8SChris Lattner function gets registered with libdebugnub.dylib when we want to log 1234*30fdc8d8SChris Lattner to a 'FILE *'. 1235*30fdc8d8SChris Lattner (main): Register the logging callback functions when we want to log 1236*30fdc8d8SChris Lattner to file or using ASL. 1237*30fdc8d8SChris Lattner 1238*30fdc8d8SChris Lattner2008-02-12 Greg Clayton <[email protected]> 1239*30fdc8d8SChris Lattner 1240*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Default to ASL logging with no log 1241*30fdc8d8SChris Lattner bits set to allow for warning and error logging. 1242*30fdc8d8SChris Lattner * RNBRemote.h (struct Breakpoint): New structure for ref counting 1243*30fdc8d8SChris Lattner breakpoints in Z and z packets. 1244*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::SendPacket): Use new LOG_RNB_PACKETS 1245*30fdc8d8SChris Lattner defined when logging actual packet content. 1246*30fdc8d8SChris Lattner (RNBRemote::HandleAsyncPacket): Ditto. 1247*30fdc8d8SChris Lattner (RNBRemote::HandleReceivedPacket): Ditto. 1248*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_z): Ref count the setting and removing 1249*30fdc8d8SChris Lattner of breakpoints with the Z and z packets using new struct 1250*30fdc8d8SChris Lattner RNBRemote::Breakpoint. 1251*30fdc8d8SChris Lattner * RNBDefs.h (LOG_RNB_PACKETS): New define for logging the sending 1252*30fdc8d8SChris Lattner and receiving of packets data. 1253*30fdc8d8SChris Lattner * DNB.cpp (DNBPrintf): Check for NULL file handle. 1254*30fdc8d8SChris Lattner * DNBBreakpoint.cpp (DNBBreakpoint::Dump): Ditto. 1255*30fdc8d8SChris Lattner (DNBBreakpointList::Dump): Ditto. 1256*30fdc8d8SChris Lattner * DNBDefs.h (LOG_EVENTS): New define for logging PThreadEvent. 1257*30fdc8d8SChris Lattner * DNBLog.cpp (g_debug_opt): Relocated outside of #if that turns off 1258*30fdc8d8SChris Lattner logging completely to allow option parsing code that uses it to 1259*30fdc8d8SChris Lattner still compile. 1260*30fdc8d8SChris Lattner (g_verbose): Ditto. 1261*30fdc8d8SChris Lattner * DNBLog.h (DNBLogToASL): Added prototype for when logging is 1262*30fdc8d8SChris Lattner disabled via preprocessor macro. 1263*30fdc8d8SChris Lattner (DNBLogToFile): Ditto. 1264*30fdc8d8SChris Lattner * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Check for NULL 1265*30fdc8d8SChris Lattner file handle. 1266*30fdc8d8SChris Lattner * MachException.cpp (MachException::ThreadMessage::DumpStopReason): Ditto. 1267*30fdc8d8SChris Lattner (MachException::ThreadMessage::Dump): Ditto. 1268*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::CreateBreakpoint): Improved logging. 1269*30fdc8d8SChris Lattner (MachProcess::DisableBreakpoint): Verify the original opcode gets 1270*30fdc8d8SChris Lattner restored, improved logging and added unconditional logging for when 1271*30fdc8d8SChris Lattner things go wrong. 1272*30fdc8d8SChris Lattner (MachProcess::EnableBreakpoint): Verify the breakpoint opcode gets 1273*30fdc8d8SChris Lattner written, improved logging and added unconditional logging for when 1274*30fdc8d8SChris Lattner things go wrong. 1275*30fdc8d8SChris Lattner * MachThread.cpp (MachThread::Dump): Check for NULL file handle. 1276*30fdc8d8SChris Lattner * MachVMMemory.cpp (MachVMMemory::WriteRegion): Flush caches in inferior 1277*30fdc8d8SChris Lattner after writing to inferior memory. 1278*30fdc8d8SChris Lattner * PThreadEvent.cpp: Changed all logging calls to key off of LOG_EVENTS 1279*30fdc8d8SChris Lattner instead of LOG_VERBOSE. 1280*30fdc8d8SChris Lattner MachDYLD.cpp (MachDYLD::Dump): Check for NULL file handle. 1281*30fdc8d8SChris Lattner (MachDYLD::DYLIBInfo::Dump): Ditto. 1282*30fdc8d8SChris Lattner ProfileObjectiveC.cpp (ProfileObjectiveC::DumpStats): Ditto. 1283*30fdc8d8SChris Lattner 1284*30fdc8d8SChris Lattner2008-02-09 Jason Molenda ([email protected]) 1285*30fdc8d8SChris Lattner 1286*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): Log to ASL unconditionally when 1287*30fdc8d8SChris Lattner processing a QSetLogging packet. 1288*30fdc8d8SChris Lattner 1289*30fdc8d8SChris Lattner2008-02-06 Greg Clayton <[email protected]> 1290*30fdc8d8SChris Lattner 1291*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Dup stdout and stderr to /dev/NULL 1292*30fdc8d8SChris Lattner when we use lockdown. 1293*30fdc8d8SChris Lattner 1294*30fdc8d8SChris Lattner2008-02-06 Greg Clayton <[email protected]> 1295*30fdc8d8SChris Lattner 1296*30fdc8d8SChris Lattner * RNBSocket.cpp (RNBSocket::Disconnect): Removed unused var ERR. 1297*30fdc8d8SChris Lattner * RNBRemote.cpp(RNBRemote::HandlePacket_Q): Removed unused var PID. 1298*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::LogThreadedIfError): Removed unused var 1299*30fdc8d8SChris Lattner ERR_MSG. 1300*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Removed unused 1301*30fdc8d8SChris Lattner variable EXECUTABLE_LENGTH. 1302*30fdc8d8SChris Lattner (main): Removed unused variable ARG_IDX. 1303*30fdc8d8SChris Lattner 1304*30fdc8d8SChris Lattner2008-02-06 Chris Marcellino ([email protected]) and Myke Olson ([email protected]) 1305*30fdc8d8SChris Lattner 1306*30fdc8d8SChris Lattner * MachProcess.cpp (SBForkChildForPTraceDebugging): Bring up to date with 1307*30fdc8d8SChris Lattner current SpringBoardServices.framework types and imports. 1308*30fdc8d8SChris Lattner 1309*30fdc8d8SChris Lattner2008-02-05 Jason Molenda ([email protected]) 1310*30fdc8d8SChris Lattner 1311*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): Remove the mode=file and filename= 1312*30fdc8d8SChris Lattner options to the QSetLogging packet. We're only going to support logging 1313*30fdc8d8SChris Lattner to ASL for now. Logging to a file can still be accomplished by the 1314*30fdc8d8SChris Lattner -l command line argument. 1315*30fdc8d8SChris Lattner 1316*30fdc8d8SChris Lattner2008-02-02 Christopher Friesen ([email protected]) 1317*30fdc8d8SChris Lattner 1318*30fdc8d8SChris Lattner * Added libXcodeDebugerSupport.dylib target 1319*30fdc8d8SChris Lattner * XCDebuggerIntrospection.[hc]: Support for Xcode's debugger introspection. 1320*30fdc8d8SChris Lattner 1321*30fdc8d8SChris Lattner2008-02-01 Jason Molenda ([email protected]) 1322*30fdc8d8SChris Lattner 1323*30fdc8d8SChris Lattner * DNBLog.cpp (DNBLogCloseLogFile): New function to close a logfile 1324*30fdc8d8SChris Lattner at exit. 1325*30fdc8d8SChris Lattner * DNBLog.h: Prototype. 1326*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Close the log file before exiting. 1327*30fdc8d8SChris Lattner 1328*30fdc8d8SChris Lattner2008-02-01 Jason Molenda ([email protected]) 1329*30fdc8d8SChris Lattner 1330*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): Recognize the "filename=" argument 1331*30fdc8d8SChris Lattner to the QSetLogging directive. 1332*30fdc8d8SChris Lattner * DNBLog.cpp (DNBLogGetLogMask): New fun.c 1333*30fdc8d8SChris Lattner * DNBLog.h: Prototype. 1334*30fdc8d8SChris Lattner 1335*30fdc8d8SChris Lattner2008-01-31 Jason Molenda ([email protected]) 1336*30fdc8d8SChris Lattner 1337*30fdc8d8SChris Lattner * DNBLog.cpp: Add ASL logging as a run-time selectable option. 1338*30fdc8d8SChris Lattner (DNBLogToASL, DNBLogToFile): Functions to switch between logging to 1339*30fdc8d8SChris Lattner a file and logging via ASL. 1340*30fdc8d8SChris Lattner * DNBLog.h: Prototypes. 1341*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): Recognize the "mode=" field to enable 1342*30fdc8d8SChris Lattner asl logging. Skip unrecognized keys. 1343*30fdc8d8SChris Lattner 1344*30fdc8d8SChris Lattner2008-01-31 Greg Clayton ([email protected]) 1345*30fdc8d8SChris Lattner 1346*30fdc8d8SChris Lattner * DNB.cpp (sigchld_handler): Better logging when we get a 1347*30fdc8d8SChris Lattner SIGCHILD and we are watching for process related logging events. 1348*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopInferiorExecuting): Only reset 1349*30fdc8d8SChris Lattner events when we still have event bits set. 1350*30fdc8d8SChris Lattner 1351*30fdc8d8SChris Lattner2008-01-29 Jason Molenda ([email protected]) 1352*30fdc8d8SChris Lattner 1353*30fdc8d8SChris Lattner * RNBRemote.h: Add set_logging_mode. 1354*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize 1355*30fdc8d8SChris Lattner QSetLogging. 1356*30fdc8d8SChris Lattner 1357*30fdc8d8SChris Lattner2008-01-29 Jason Molenda ([email protected]) 1358*30fdc8d8SChris Lattner 1359*30fdc8d8SChris Lattner * RNBRemote.cpp (set_logging): New function to parse the QSetLogging 1360*30fdc8d8SChris Lattner packet. 1361*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_Q): Call it. 1362*30fdc8d8SChris Lattner 1363*30fdc8d8SChris Lattner2008-01-28 Jason Molenda ([email protected]) 1364*30fdc8d8SChris Lattner 1365*30fdc8d8SChris Lattner * RNBRemote.h: Minimal packet size is 1024 in our gdb now. 1366*30fdc8d8SChris Lattner * RNBRemote.cpp: Add the stop_pc value in big-endian order to the 1367*30fdc8d8SChris Lattner T response packet to make it a little easier to follow where gdb 1368*30fdc8d8SChris Lattner is stepping. 1369*30fdc8d8SChris Lattner 1370*30fdc8d8SChris Lattner2008-01-28 Greg Clayton <[email protected]> 1371*30fdc8d8SChris Lattner 1372*30fdc8d8SChris Lattner * RNBContext.h: Removed m_pid_state from RNBContext class so that 1373*30fdc8d8SChris Lattner it couldn't get out of sync with the actual process and its accessors 1374*30fdc8d8SChris Lattner SetProcessState() and GetProcessState(). 1375*30fdc8d8SChris Lattner * RNBContext.cpp (RNBContext::ProcessStateRunning): Always return the 1376*30fdc8d8SChris Lattner current state of the process instead of a cached value. 1377*30fdc8d8SChris Lattner * test-remotenub.cpp (RNBRunLoopLaunchInferior): Remove call to 1378*30fdc8d8SChris Lattner deprecated RNBContext::SetProcessState(). 1379*30fdc8d8SChris Lattner (HandleProcessStateChange): Ditto. 1380*30fdc8d8SChris Lattner 1381*30fdc8d8SChris Lattner2008-01-24 Greg Clayton ([email protected]) 1382*30fdc8d8SChris Lattner 1383*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with 1384*30fdc8d8SChris Lattner "qSymbol" (no trailing "s") and return the empty string. 1385*30fdc8d8SChris Lattner 1386*30fdc8d8SChris Lattner2008-01-24 Greg Clayton ([email protected]) 1387*30fdc8d8SChris Lattner 1388*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with 1389*30fdc8d8SChris Lattner "qSymbols" and return the empty string. 1390*30fdc8d8SChris Lattner 1391*30fdc8d8SChris Lattner2008-01-24 Greg Clayton ([email protected]) 1392*30fdc8d8SChris Lattner 1393*30fdc8d8SChris Lattner * DNBError.h (DNBError::DumpIfError): Removed prototype. 1394*30fdc8d8SChris Lattner * DNBError.cpp (DNBError::DumpIfError): Removed function. 1395*30fdc8d8SChris Lattner (DNBError::LogThreadedIfError): Output error as hex. 1396*30fdc8d8SChris Lattner * MachException.cpp (MachException::Message::Receive): Don't use 1397*30fdc8d8SChris Lattner DNBError::DumpIfError, now use DNBError::LogThreadedIfError. 1398*30fdc8d8SChris Lattner * MachProcess.cpp (MachProcess::StartExceptionThread): Ditto. 1399*30fdc8d8SChris Lattner (MachProcess::Suspend): Ditto. 1400*30fdc8d8SChris Lattner (MachProcess::SBForkChildForPTraceDebugging): Ditto. 1401*30fdc8d8SChris Lattner * MachVMMemory.cpp (MachVMMemory::Read): Cleaned up logging 1402*30fdc8d8SChris Lattner calls. 1403*30fdc8d8SChris Lattner (MachVMMemory::Write): Ditto. 1404*30fdc8d8SChris Lattner (MachVMMemory::WriteRegion): Added logging. 1405*30fdc8d8SChris Lattner * RNBContenxt.cpp (display_thread_info): Removed function. 1406*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::GetPacket): Commented out stderr 1407*30fdc8d8SChris Lattner messages to avoid SpringBoard from killing us. 1408*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_p): Ditto. 1409*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_P): Ditto. 1410*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_c): Ditto. 1411*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_A): Removed code that was already 1412*30fdc8d8SChris Lattner * RNBSocket.cpp (RNBSocket::Listen): Commented out stdout 1413*30fdc8d8SChris Lattner messages to avoid SpringBoard from killing us. 1414*30fdc8d8SChris Lattner (RNBSocket::ConnectToService): Ditto. 1415*30fdc8d8SChris Lattner 1416*30fdc8d8SChris Lattner2008-01-24 Jim Ingham <[email protected]> 1417*30fdc8d8SChris Lattner 1418*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_q): Reply "" to qSymbols 1419*30fdc8d8SChris Lattner and qOffsets. 1420*30fdc8d8SChris Lattner 1421*30fdc8d8SChris Lattner2008-01-23 Jason Molenda ([email protected]) 1422*30fdc8d8SChris Lattner 1423*30fdc8d8SChris Lattner * RNBRemote.h: m_noack_mode to RNBRemote class. 1424*30fdc8d8SChris Lattner * RNBRemote.cpp: Change #ifdef NO_ACKS code blocks 1425*30fdc8d8SChris Lattner to use m_noack_mode instance variable. 1426*30fdc8d8SChris Lattner (RNBRemote::HandlePacket_Q): New function to handle 1427*30fdc8d8SChris Lattner QStartNoAckMode packet and set m_noack_mode appropriately. 1428*30fdc8d8SChris Lattner * test-remotenub.cpp: Remove NO_ACKS ifdefs. 1429*30fdc8d8SChris Lattner 1430*30fdc8d8SChris Lattner2008-01-22 Jason Molenda ([email protected]) 1431*30fdc8d8SChris Lattner 1432*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize 1433*30fdc8d8SChris Lattner QStartNoAckMode as an unsupported remote protocol request. 1434*30fdc8d8SChris Lattner * RNBRemote.h: Add start_noack_mode enum entry. 1435*30fdc8d8SChris Lattner 1436*30fdc8d8SChris Lattner2008-01-22 Greg Clayton ([email protected]) 1437*30fdc8d8SChris Lattner 1438*30fdc8d8SChris Lattner * DNBLog.h: Removed C++ namespace for DNBLog (changed all DNBLog:: 1439*30fdc8d8SChris Lattner to DNBLog) so C99 var arg macros can be used to completely disable 1440*30fdc8d8SChris Lattner all logging and any functions that may be called when making the 1441*30fdc8d8SChris Lattner variable arguments. 1442*30fdc8d8SChris Lattner * DNBLog.cpp: Ditto. 1443*30fdc8d8SChris Lattner * DNB.cpp: Ditto. 1444*30fdc8d8SChris Lattner * DNBBreakpoint.cpp: Ditto. 1445*30fdc8d8SChris Lattner * DNBError.cpp: Ditto. 1446*30fdc8d8SChris Lattner * MacOSX/MachDYLD.cpp: Ditto. 1447*30fdc8d8SChris Lattner * MacOSX/MachException.cpp: Ditto. 1448*30fdc8d8SChris Lattner * MacOSX/MachProcess.cpp: Ditto. 1449*30fdc8d8SChris Lattner * MacOSX/MachThread.cpp: Ditto. 1450*30fdc8d8SChris Lattner * MacOSX/MachThreadList.cpp: Ditto. 1451*30fdc8d8SChris Lattner * MacOSX/MachVMMemory.cpp: Ditto. 1452*30fdc8d8SChris Lattner * MacOSX/MachVMRegion.cpp: Ditto. 1453*30fdc8d8SChris Lattner * MacOSX/arm/DNBArchImpl.cpp: Ditto. 1454*30fdc8d8SChris Lattner * MacOSX/ppc/DNBArchImpl.cpp: Ditto. 1455*30fdc8d8SChris Lattner * PThreadEvent.cpp: Ditto. 1456*30fdc8d8SChris Lattner * RNBContext.cpp: Ditto. 1457*30fdc8d8SChris Lattner * RNBRemote.cpp: Ditto. 1458*30fdc8d8SChris Lattner * RNBSocket.cpp: Ditto. 1459*30fdc8d8SChris Lattner * test-remotenub.cpp: Ditto. 1460*30fdc8d8SChris Lattner 1461*30fdc8d8SChris Lattner2008-01-21 Jason Molenda ([email protected]) 1462*30fdc8d8SChris Lattner 1463*30fdc8d8SChris Lattner * test-remotenub.cpp: Add NO_SPRINGBOARD for turning off SpringBoard 1464*30fdc8d8SChris Lattner dependency ala NO_ACKS. 1465*30fdc8d8SChris Lattner 1466*30fdc8d8SChris Lattner2008-01-18 Jason Molenda ([email protected]) 1467*30fdc8d8SChris Lattner 1468*30fdc8d8SChris Lattner * RNBSocket.h (RNBSocket::RNBSocket): Take either a port # or 1469*30fdc8d8SChris Lattner an already-opened socket, with a boolean to indicate which it is. 1470*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::RNBRemote): Ditto. 1471*30fdc8d8SChris Lattner * RNBRemote.h: Prototype update. 1472*30fdc8d8SChris Lattner * test-remotenub.cpp: Include lockdown.h. Take --lockdown command 1473*30fdc8d8SChris Lattner line arg, get the socket from liblockdown.dylib instead of opening 1474*30fdc8d8SChris Lattner our own socket if it is specified. --lockdown indicates that 1475*30fdc8d8SChris Lattner the program name/args will be provided via remote protocol instead 1476*30fdc8d8SChris Lattner of on the command line. 1477*30fdc8d8SChris Lattner 1478*30fdc8d8SChris Lattner2008-01-17 Jason Molenda ([email protected]) 1479*30fdc8d8SChris Lattner 1480*30fdc8d8SChris Lattner * RNBRemote.cpp: Add NO_ACKS #ifdefs around code that computes 1481*30fdc8d8SChris Lattner the checksums and sends/expects the gdb remote protocol ACK packets. 1482*30fdc8d8SChris Lattner If NO_ACKS is defined, debugserver will not send or expect acks. 1483*30fdc8d8SChris Lattner * test-remotenub.cpp (main): Print a different version string 1484*30fdc8d8SChris Lattner if NO_ACKS is defined. 1485*30fdc8d8SChris Lattner 1486*30fdc8d8SChris Lattner2008-01-16 Greg Clayton ([email protected]) 1487*30fdc8d8SChris Lattner 1488*30fdc8d8SChris Lattner * PThreadEvent.cpp: Added this pointer to all logging calls. 1489*30fdc8d8SChris Lattner 1490*30fdc8d8SChris Lattner2008-01-16 Greg Clayton ([email protected]) 1491*30fdc8d8SChris Lattner 1492*30fdc8d8SChris Lattner * RNBSocket.cpp (RNBSocket::Connect()): Use TCP so we can try the 1493*30fdc8d8SChris Lattner TCP_NODELAY socket option. 1494*30fdc8d8SChris Lattner (RNBSocket::SetSocketOption()): New function. 1495*30fdc8d8SChris Lattner * RNBSocket.h (RNBSocket::SetSocketOption()): New class function. 1496*30fdc8d8SChris Lattner 1497*30fdc8d8SChris Lattner2008-01-14 Jason Molenda ([email protected]) 1498*30fdc8d8SChris Lattner 1499*30fdc8d8SChris Lattner * RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): When printing 1500*30fdc8d8SChris Lattner registers, skip over gdb regs which don't map to DNB regs. 1501*30fdc8d8SChris Lattner 1502*30fdc8d8SChris Lattner2008-01-14 Jim Ingham <[email protected]> 1503*30fdc8d8SChris Lattner 1504*30fdc8d8SChris Lattner * ChangeLog - created. 1505*30fdc8d8SChris Lattner * RBNContext.h: Added m_arg_vec and accessors. 1506*30fdc8d8SChris Lattner * RNBContext.cpp (SetProcessID): New function. 1507*30fdc8d8SChris Lattner * RBNRemote.h: Added packet type to HandlePacket & HandleAsyncPacket 1508*30fdc8d8SChris Lattner * RNBRemote.cpp (HandlePacket, HandleAsyncPacket): Return type. 1509*30fdc8d8SChris Lattner (HandlePacket_A): Fix a few bugs. 1510*30fdc8d8SChris Lattner (HandlePacket_H): Return OK if target is not yet running. 1511*30fdc8d8SChris Lattner (HandlePacket_q): Return PID of 0 if target is not yet running. 1512*30fdc8d8SChris Lattner * testremotenub.cpp (RNBRunLoopGetArgsFromRemote): Implement. 1513*30fdc8d8SChris Lattner (RNBRunLoopLaunchInferior): Fetch arguments from context. 1514*30fdc8d8SChris Lattner (main) Store arguments in context, call RNBRunLoopGetArgsFromRemote 1515*30fdc8d8SChris Lattner if appropriate. 1516