forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			1516 lines
		
	
	
		
			69 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1516 lines
		
	
	
		
			69 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 2010-01-29  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* MachProcess.cpp (MachProcess::PrepareForAttach): No longer use the
 | |
| 	SBSLaunchApplication macro from the SpringBoard.framework, use the actual
 | |
| 	function name SBSLaunchApplicationForDebugging.
 | |
| 	(MachProcess::CleanupAfterAttach): Ditto.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
 | |
| 	(debugserver-entitlements.plist): Added the "seatbelt-profiles" entitlement
 | |
| 	so debugserver can be sandboxed.
 | |
| 
 | |
| 2009-07-06  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* MachTask.cpp (MachTask::GetDYLDAllImageInfosAddress): Hack around bad
 | |
| 	kernel code that renamed the first member of the TASK_DYLD_INFO without
 | |
| 	any way to detect it has changed.
 | |
| 
 | |
| 2009-06-29  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.cpp (GetAllInfosMatchingName): Correctly truncate process name string
 | |
| 	to MAXCOMLEN when searching kinfo_proc structs for process matches by name.
 | |
| 	* MachProcess.cpp (MachProcess::PrepareForAttach): Added logging when 
 | |
| 	attaching to a program by name.
 | |
| 
 | |
| 2009-06-25  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.cpp (DNBProcessLaunch): Added a stat on the incoming path that we are
 | |
| 	about to launch to make sure the file exists. If the file doesn't, then an
 | |
| 	appropriate error string is returned. Also if we fail to get the task for
 | |
| 	our process ID, we return an error string right away instead of letting the
 | |
| 	debug session go for a little bit and then later failing after a few more
 | |
| 	packets.
 | |
| 
 | |
| 2009-04-07  Jim Ingham  <jingham@apple.com>
 | |
| 
 | |
|     * RNBRemote.h: Add vAttachWait
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Add vattachwait.
 | |
| 	(RNBRemoteShouldCancelCallback): New function.
 | |
| 	(RNBRemote::HandlePacket_v): Handle vattachwait.
 | |
| 	* RNBSocket.cpp (RNBSocket::Read): Mark the connection as closed when the
 | |
| 	port goes away.
 | |
| 	* DNB.cpp (DNBProcessAttachByName): New function.
 | |
| 	(DNBProcessAttach): Make this handle catching the attach when done and
 | |
| 	dealing with timeout & return conditions.
 | |
| 	(GetAllInfos): New function.
 | |
| 	(GetAlInfosMatchingName): New function.
 | |
| 	(DNBProcessAttachWait): New function.
 | |
| 	DNB.h: Declare DNBProcessAttachByName, DNBProcessAttachWait, change 
 | |
| 	signature of DNBProcessAttach.
 | |
| 	* MachProcess.cpp (MachProcess::PrepareForAttach): New function.
 | |
| 	(MachProcess::CheckForProcess): New function.
 | |
| 	(MachProcess::CleanupAfterAttach): New function.
 | |
| 	(CopyBundleIDForPath): New function.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Convert to using 
 | |
| 	CopyBundleIDForPath.
 | |
| 	* MachProcess.h: Declare PrepareForAttach, CleanupAfterAttach and
 | |
| 	CheckForProcess.
 | |
|     * DNBTimer.h (TimeOfDayLaterThan): New function.
 | |
| 	* test-remotenub.cpp (RNBRunLoopGetStartModeFromRemote): Rename from
 | |
| 	RNBRunLoopGetArgsFromRemote, and handle vattachwait.
 | |
| 	(RNBRunLoopLaunchAttaching): Code was moved from here into DNBProcessAttach.
 | |
| 	(StartListening): New function.
 | |
| 	(GetAllProcessInfos, GetAllProcessInfosMatchingName): Moved to 
 | |
| 	DNBProcess.cpp.
 | |
| 	(main): Handle attach waitfor, and make debugserver with only a host and
 | |
| 	port wait on commands from gdb.
 | |
| 
 | |
| 2009-04-03  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h (PacketEnum): Added enum for qShlibInfoAddr.
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable) Added the qShlibInfoAddr 
 | |
| 	packet definition to m_packets.
 | |
| 	(RNBRemote::GetPacket): Log when we run into an unimplemented packet.
 | |
| 	(RNBRemote::HandleReceivedPacket): Only log the packet when logging
 | |
| 	LOG_RNB_REMOTE.
 | |
| 	(RNBRemote::HandlePacket_q): Add support for the new qShlibInfoAddr packet.
 | |
| 	* DNB.h (DNBProcessGetSharedLibraryInfoAddress): New prototype.
 | |
| 	* DNB.cpp (DNBProcessGetSharedLibraryInfoAddress): New function.
 | |
| 	* MachTask.h (MachProcess::GetDYLDAllImageInfosAddress): New prototype.
 | |
| 	* MachTask.cpp (MachProcess::GetDYLDAllImageInfosAddress): New function.
 | |
| 	
 | |
| 2009-04-01  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (main): Display the detailed error message if any when
 | |
| 	attaching fails.
 | |
| 
 | |
| 2009-03-25  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Cleaned up logging and
 | |
| 	removed time deltas form the messages.
 | |
| 	(RNBRunLoopLaunchAttaching): Ditto.
 | |
| 	(RNBRunLoopLaunchInferior): Ditto and also use new DNBProcessLaunch that
 | |
| 	takes an error string pointer.
 | |
| 	* RNBContext.h (class RNBContext): Removed the m_timer member.
 | |
| 	* RNBContext.cpp (RNBContext::StartProcessStatusThread): Cleaned up logging
 | |
| 	and removed time deltas form the messages.
 | |
| 	(RNBContext::ThreadFunctionProcessStatus): Ditto.
 | |
| 	* RNBSocket.h (class RNBSocket): Removed unused m_last_errno member and
 | |
| 	accessor functions.
 | |
| 	* RNBSocket.cpp (RNBSocket::Listen): Cleaned up logging  and
 | |
| 	removed time deltas form the messages.
 | |
| 	(RNBSocket::ConnectToService): Ditto.
 | |
| 	(RNBSocket::Read): Ditto.
 | |
| 	(RNBSocket::Write): Ditto.
 | |
| 	(RNBSocket::SaveErrno): Removed.
 | |
| 	(RNBSocket::ClosePort): Don't call RNBSocket::SaveErrno().
 | |
| 	* RNBRemote.cpp (RNBRemote::RNBRemote): Cleaned up logging  and
 | |
| 	removed time deltas form the messages.
 | |
| 	(RNBRemote::~RNBRemote): Ditto.
 | |
| 	(RNBRemote::SendPacket): Ditto.
 | |
| 	(RNBRemote::GetPacketPayload): Ditto.
 | |
| 	(RNBRemote::GetPacket): Ditto): Ditto.
 | |
| 	(RNBRemote::HandleAsyncPacket): Ditto.
 | |
| 	(RNBRemote::HandleReceivedPacket): Ditto.
 | |
| 	(RNBRemote::CommDataReceived): Ditto.
 | |
| 	* DNB.cpp (DNBProcessLaunch): Changed to take a eror string pointer with 
 | |
| 	size for more desciptive error reporting (instead of a uint32_t pointer).
 | |
| 	* DNB.h (DNBProcessLaunch): Ditto.
 | |
| 	* DNBError.cpp (DNBError::AsString): Now returns NULL if there is no error.
 | |
| 	* DNBError.h (DNBError::SetErrorString): New accessor to allow custom error
 | |
| 	strings.
 | |
| 	* arm/DNBArchImpl.cpp (DNBArchMachARM::GetGPRState): Improved logging.
 | |
| 	* MachProcess.cpp (MachProcess::SBForkChildForPTraceDebugging): Improved
 | |
| 	error messages when a file doesn't exist, or when unable to extract the
 | |
| 	CFBundleIdentifier.
 | |
| 	* PThreadEvent.cpp (class PThreadEvent): Commented out all logging calls.
 | |
| 
 | |
| 2009-03-07  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (GetAllProcessInfosMatchingName): New function that
 | |
| 	returns matching kinfo_proc structs given a process name.
 | |
| 	(main): Enhanced the --attach option to be able to take a PROCNAME or
 | |
| 	a PID. Changed the --waitfor=PROCNAME option to ignore any existing 
 | |
| 	processes with PROCNAME so we only catch new process invocations.
 | |
| 
 | |
| 2009-03-07  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_p): Use the correct get current
 | |
| 	thread function call so we get the correct thread registers.
 | |
| 
 | |
| 2009-03-03  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (g_isatty): New global that gets set to non-zero if
 | |
| 	STDOUT is a TTY in the beginning of main.
 | |
| 	(RNBLogSTDOUT): New macro that logs to STDOUT if g_isatty is non-zero, else
 | |
| 	it logs to asl.
 | |
| 	(RNBLogSTDERR): New macro that logs to STDERR if g_isatty is non-zero, else
 | |
| 	it logs to asl.
 | |
| 	(RNBRunLoopGetArgsFromRemote): Use new RNBLogSTDOUT/RNBLogSTDERR macros.
 | |
| 	(GetAllProcessInfos): Get all process info structs for everything on the 
 | |
| 	system.
 | |
| 	(main): Implemented new --waitfor=NAME option to allow waiting for a process
 | |
| 	to run by polling the system processes. The new --waitfor-interval=N option
 | |
| 	allows fine control over the polling interval where N is the number of mirco
 | |
| 	seconds (usec) to wait between polls (defaults to 1000). The new 
 | |
| 	--waitfor-duration=N allows	a timeout in seconds to be specified when 
 | |
| 	waiting for a process (defaults	to infinite).
 | |
| 	
 | |
| 2009-03-02  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup):
 | |
| 	Take care of a case where no instructions execute in a Thumb IT block and
 | |
| 	the last of which is a branch.
 | |
| 
 | |
| 2009-02-10  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h (PacketEnum): Added 'detach' enumeration.
 | |
| 	(RNBRemote::HandlePacket_D): New member function prototype.
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Added detach support.
 | |
| 	(RNBRemote::HandlePacket_D): New function for detach support.
 | |
| 
 | |
| 2009-02-10  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_UNIMPLEMENTED): Log this
 | |
| 	packet with the packet that is unimplemented.
 | |
| 	(RNBRemote::GetPacket): Call RNBRemote::HandlePacket_UNIMPLEMENTED()
 | |
| 	when we don't recognize a packet.
 | |
| 	(RNBRemote::HandleReceivedPacket): Don't reply to packets we don't
 | |
| 	recognize with unimplemented in this fucntion as that should have
 | |
| 	already been done for us in RNBRemote::GetPacket().
 | |
| 
 | |
| 2009-02-10  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h (PacketEnum): Added query_step_packet_supported.
 | |
| 	* RNBRemot.cpp (RNBRemote::CreatePacketTable): Added new 
 | |
| 	qStepPacketSupported packet.
 | |
| 	(RNBRemote::HandlePacket_q): Added support for the new
 | |
| 	"qStepPacketSupported" packet.
 | |
| 	(RNBRemote::HandlePacket_G): Some cleanup when reading registers
 | |
| 	to avoid spurious console logging.
 | |
| 
 | |
| 2009-01-30  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* debugserver-entitlements.plist: Changed the entitlement 
 | |
| 	"run-invalid-allow" to "run-unsigned-code".
 | |
| 
 | |
| 2009-01-23  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): 
 | |
| 	Merged Yusuf's changes to make software single stepping work.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Call new 
 | |
| 	DNBResolveExecutablePath function to resolve executable paths.
 | |
| 	* DNB.h (DNBResolveExecutablePath): New function prototype.
 | |
| 	* DNB.cpp (DNBResolveExecutablePath): New function that will resolve
 | |
| 	relative paths and also executable paths for executables that aren't relative
 | |
| 	but yet are in the shell PATH environment variable.
 | |
| 	
 | |
| 2009-01-22  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBArchImpl.h (class DBNArchMachARM): Renamed member variable 
 | |
| 	m_chained_hw_single_step_addr to m_hw_single_chained_step_addr. Added
 | |
| 	new member variables: m_sw_single_step_itblock_break_id, m_last_decode_pc,
 | |
| 	and m_sw_single_step_itblock_break_count. Renamed m_thumbStaticData to 
 | |
| 	m_last_decode_thumb, and renamed m_decodedInstruction to m_last_decode_arm.
 | |
| 	(DBNArchMachARM::DecodeITBlockInstructions): New prototype.
 | |
| 	(DBNArchMachARM::DecodeInstructionUsingDisassembler): New prototype.
 | |
|     (DBNArchMachARM::BreakpointHit): New prototype.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Disable any of the
 | |
| 	many software single step breakpoints if any are set.
 | |
| 	(DNBArchMachARM::StepNotComplete): Changed renamed member accesses.
 | |
| 	(DNBArchMachARM::DecodeITBlockInstructions): New function for software 
 | |
| 	single stepping through Thumb IT blocks.
 | |
| 	(DNBArchMachARM::EnableHardwareSingleStep): Cleaned up logging.
 | |
| 	(DNBArchMachARM::ComputeNextPC): Ditto.
 | |
| 	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): Now
 | |
| 	properly handles Thumb IT software single stepping.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto.
 | |
| 	(DNBArchMachARM::DecodeInstructionUsingDisassembler): New function.
 | |
| 	(DNBArchMachARM::BreakpointHit): New breakpoint callback function.
 | |
| 	
 | |
| 2009-01-21  Greg Clayton  <gclayton@apple.com>
 | |
| 	
 | |
| 	* MachProcess.cpp (MachProcess::PrivateResume): Set the process state before
 | |
| 	we actually resume so we are sure to get the events in the correct order.
 | |
| 
 | |
| 2009-01-16  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Include only 
 | |
| 	registers which are to be expedited in the T packets.
 | |
| 	(RNBRemote::HandlePacket_p): Enable for all targets.
 | |
| 	(struct register_map_entry): Added an expedite member so we know which
 | |
| 	registers need to be sent up to the host with each stop reply packet.
 | |
| 	(register_map): Updated each array members' expedite member with an 
 | |
| 	appropriate value.
 | |
| 
 | |
| 2009-01-16  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_s): Enabled the step command ("s"
 | |
| 	packet) for ARM now that libdebugnub.dylib can do both hardware and software
 | |
| 	single stepping.
 | |
| 
 | |
| 2009-01-13  Greg Clayton  <gclayton@apple.com>
 | |
| 	
 | |
| 	*DNBArchImpl.cpp (bit): New function.
 | |
| 	(bits): New function.
 | |
| 	(DNBArchMachARM::ConditionPassed): Use new "bit" function.
 | |
| 	(DNBArchMachARM::ComputeNextPC): Use new "bit" function, remove inline
 | |
| 	assembly for "RSC" instruction so this compiles for armv7 (which defaults
 | |
| 	to thumb)
 | |
| 	(DNBArchMachARM::NumSupportedHardwareBreakpoints): Use new "bits" function.
 | |
| 	(DNBArchMachARM::NumSupportedHardwareWatchpoints): Use new "bits" function.
 | |
| 
 | |
| 2009-01-12  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBArch.h (DNBArchProtocol::NumSupportedHardwareBreakpoints()): Removed
 | |
| 	the "const" qualifier to allow arches to auto detect how many hardware 
 | |
| 	breakpoints they have.
 | |
| 	(DNBArchProtocol::NumSupportedHardwareWatchpoints()): Removed the "const" 
 | |
| 	qualifier to allow arches to auto detect how many hardware watchpoints they 
 | |
| 	have.
 | |
| 	* DNBArchImpl.h (DNBArchMachARM::NumSupportedHardwareBreakpoints()): Auto
 | |
| 	detect how many BRP pairs are avialable and disable for armv7 for the time
 | |
| 	being (rdar://problem/6372672).
 | |
| 	(DNBArchMachARM::NumSupportedHardwareWatchpoints()): Auto detect how many 
 | |
| 	WRP pairs are avialable and disable for armv7 for the time being 
 | |
| 	(rdar://problem/6372672).
 | |
| 
 | |
| 2009-01-09  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (main): Filled in short argument versions for 
 | |
| 	--applist (-t) and --lockdown (-k) options.
 | |
| 	* DNBArchImpl.h (DNBArchMachARM::ConditionPassed): New protected
 | |
| 	member function.
 | |
| 	(DNBArchMachARM::ComputeNextPC): New protected member function.
 | |
| 	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New 
 | |
| 	protected member function.
 | |
| 	(DNBArchMachARM::m_thumbStaticData): New protected member variable.
 | |
| 	(DNBArchMachARM::m_decodedInstruction): New protected member variable.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Added extra code that
 | |
| 	will log and exit when we are verifying software single stepping (a 
 | |
| 	compile time option).
 | |
| 	(DNBArchMachARM::ConditionPassed): New function.
 | |
| 	(DNBArchMachARM::ComputeNextPC): New function.
 | |
| 	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New
 | |
| 	function.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Added the guts of the
 | |
| 	software single stepping.
 | |
| 	(DNBArchMachARM::NumSupportedHardwareBreakpoints): Prepared for adding
 | |
| 	auto detection code.
 | |
| 	(DNBArchMachARM::NumSupportedHardwareWatchpoints): Prepared for adding
 | |
| 	auto detection code.
 | |
| 
 | |
| 2008-12-11  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.h (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents.
 | |
| 	(DNBProcessSetEvents): Removed (deprecated).
 | |
| 	(DNBProcessGetWaitForResetMask): Removed (unused).
 | |
| 	(DNBProcessSetWaitForResetMask): Removed (unused).
 | |
| 	(DNBProcessInterruptEvents): New function prototype.
 | |
| 	* DNB.cpp (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents.
 | |
| 	(DNBProcessSetEvents): Removed (deprecated).
 | |
| 	(DNBProcessGetWaitForResetMask): Removed (unused).
 | |
| 	(DNBProcessSetWaitForResetMask): Removed (unused).
 | |
| 	(DNBProcessInterruptEvents): New function that can be used to 
 | |
| 	asynchronously interrupt infinite wait for events calls.
 | |
| 	RNBRemote.cpp (RNBRemote::HandlePacket_v): Call DNBProcessWaitForEvents.
 | |
| 	RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Ditto.
 | |
| 	test-remotenub.cpp (RNBRunLoopLaunchInferior): Ditto.
 | |
| 	(RNBRunLoopLaunchAttaching): Ditto.
 | |
| 
 | |
| 2008-12-11  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.cpp (GetProcessMap): Use new PTHREAD_MUTEX_LOCKER macro to ease
 | |
| 	debugging of deadlocks.
 | |
| 	(DNBProcessLaunch): Improved logging.
 | |
| 	(DNBProcessMemoryRead): Call MachProcess::ReadMemory so breakpoint
 | |
| 	opcodes can be removed from memory.
 | |
| 	(DNBProcessMemoryWrite): Call MachProcess::WriteMemory so that we work
 | |
| 	around enabled software breakpoint traps.
 | |
| 	* DNBLog.cpp (GetLogThreadedMutex): New function.
 | |
| 	(_DNBLogThreaded): Use new PTHREAD_MUTEX_LOCKER macro to ease
 | |
| 	debugging of deadlocks.
 | |
| 	(_DNBLogThreadedIf): Ditto.
 | |
| 	* DNBBreakpoint.h (DNBBreakpoint::IntersectsRange): New function.
 | |
| 	* DNBBreakpoint.cpp	(DNBBreakpointList::FindIDByAddress): Improved 
 | |
| 	logging.
 | |
| 	* MacOSX/MachThread.cpp (MachThread::MachThread): Improved logging.
 | |
| 	(MachThread::~MachThread): Ditto.
 | |
| 	(MachThread::Suspend): Ditto.
 | |
| 	(MachThread::Resume): Ditto.
 | |
| 	(MachThread::RestoreSuspendCount): Ditto.
 | |
| 	(MachThread::GetState): Use new PTHREAD_MUTEX_LOCKER macro to ease 
 | |
| 	debugging of deadlocks.
 | |
| 	(MachThread::SetState): Ditto.
 | |
| 	* MacOSX/MachVMMemory.cpp (MachVMMemory::Read): Improved logging.
 | |
| 	(MachVMMemory::Write): Ditto.
 | |
| 	(MachVMMemory::WriteRegion): Ditto.
 | |
| 	* MacOSX/MachProcess.cpp (MachProcess::GetState): Use new 
 | |
| 	PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks.
 | |
| 	(MachProcess::SetState): Ditto.
 | |
| 	(MachProcess::Clear): Ditto.
 | |
| 	(MachProcess::PrivateResume): Ditto.
 | |
| 	(MachProcess::ReplyToAllExceptions): Ditto.
 | |
| 	(MachProcess::ExceptionMessageReceived): Ditto.
 | |
| 	(MachProcess::AppendSTDOUT): Ditto.
 | |
| 	(MachProcess::GetAvailableSTDOUT): Ditto.
 | |
| 	(MachProcess::ThreadFunctionSTDIO): Renamed from to 
 | |
| 	MachProcess::STDIOThread.
 | |
| 	(MachProcess::StartSTDIOThread): Improved logging.
 | |
| 	(MachProcess::CreateBreakpoint): Ditto.
 | |
| 	(MachProcess::CreateWatchpoint): Ditto.
 | |
| 	(MachProcess::DisableAllBreakpoints): Ditto.
 | |
| 	(MachProcess::DisableBreakpoint): Ditto.
 | |
| 	(MachProcess::DisableWatchpoint): Ditto.
 | |
| 	(MachProcess::EnableBreakpoint): Ditto.
 | |
| 	(MachProcess::EnableWatchpoint): Ditto.
 | |
| 	(MachProcess::LaunchForDebug): Ditto.
 | |
| 	(MachProcess::PosixSpawnChildForPTraceDebugging): Ditto.
 | |
| 	(MachProcess::Detach): Reset the running event bit after resuming prior
 | |
| 	to issuing the SIGSTOP to avoid a pause.
 | |
| 	(MachProcess::RemoveTrapsFromBuffer): New function that removes 
 | |
| 	breakpoint traps from a memory buffer.
 | |
| 	(MachProcess::ReadMemory): Read memory from the task, then removes any
 | |
| 	breakpoint traps prior to returning the buffer.
 | |
| 	(MachProcess::WriteMemory): Write memory and any needed data to the 
 | |
| 	breakpoint saved opcodes for any software breakpoint traps that are
 | |
| 	enabled.
 | |
| 	* MacOSX/MachProcess.h (MachProcess::ThreadFunctionException): Removed.
 | |
| 	(MachProcess::ThreadFunctionSTDIO): Renamed to MachProcess::STDIOThread().
 | |
| 	(MachProcess::RemoveTrapsFromBuffer): New function.
 | |
| 	* MacOSX/MachVMRegion.cpp (MachVMRegion::SetProtections): Improved 
 | |
| 	logging.
 | |
| 	(MachVMRegion::RestoreProtections): Ditto.
 | |
| 	(MachVMRegion::GetRegionForAddress): Ditto.
 | |
| 	* MacOSX/MachException.cpp (catch_mach_exception_raise_state): Improved
 | |
| 	logging.
 | |
| 	(catch_mach_exception_raise_state_identity): Ditto.
 | |
| 	(catch_mach_exception_raise): Ditto.
 | |
| 	(MachException::Message::Dump): Ditto.
 | |
| 	(MachException::Data::GetStopInfo): Ditto.
 | |
| 	(MachException::Message::Receive): Ditto.
 | |
| 	(MachException::Message::Reply): Ditto.
 | |
| 	(MachException::Data::Dump): Ditto.
 | |
| 	(MachException::PortInfo::Save): Ditto.
 | |
| 	(MachException::PortInfo::Restore): Ditto.
 | |
| 	* MacOSX/MachTask.cpp (MachTask::Suspend): Improved logging.
 | |
| 	(MachTask::Resume): Ditto.
 | |
| 	(MachTask::ReadMemory): Ditto.
 | |
| 	(MachTask::WriteMemory): Ditto.
 | |
| 	(MachTask::TaskPortForProcessID): Ditto.
 | |
| 	(MachTask::BasicInfo): Ditto.
 | |
| 	(MachTask::StartExceptionThread): Ditto.
 | |
| 	(MachTask::ShutDownExcecptionThread): Ditto and use pthread_cancel to
 | |
| 	interrupt the exception thread.
 | |
| 	(MachTask::ExceptionThread): Ditto and revert back to infinite timeout
 | |
| 	as pthread_cancel will break us out of infinite mach_msg receive calls.
 | |
| 	* MacOSX/MachThreadList.cpp	(MachThreadList::UpdateThreadList): Improved
 | |
| 	logging.
 | |
| 	(MachThreadList::CurrentThread): Use new PTHREAD_MUTEX_LOCKER macro to 
 | |
| 	ease debugging of deadlocks.
 | |
| 	* DNBTimer.h (DNBTimer::DNBTimer): Initialize the mutex with a recursive
 | |
| 	pthread.
 | |
| 	(DNBTimer::Reset): Use new PTHREAD_MUTEX_LOCKER macro to ease debugging 
 | |
| 	of deadlocks.
 | |
| 	(DNBTimer::TotalMicroSeconds): Ditto.
 | |
| 	(DNBTimer::GetTime): Ditto.
 | |
| 	(DNBTimer::ElapsedMicroSeconds): Ditto.
 | |
| 	(DNBTimer::GetTimeOfDay): New class function.
 | |
| 	* DNBError.cpp (DNBError::LogThreaded): Improved logging.
 | |
| 	* test-dbgnub.cpp	
 | |
| 	* PThreadMutex.h: Added the ability to debug deadlocks by defining
 | |
| 	DEBUG_PTHREAD_MUTEX_DEADLOCKS.
 | |
| 	* FunctionProfiler.cpp	
 | |
| 	* PThreadEvent.cpp (PThreadEvent::NewEventBit): Use new 
 | |
| 	PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks.
 | |
| 	(PThreadEvent::FreeEventBits): Ditto.
 | |
| 	(PThreadEvent::GetEventBits): Ditto.
 | |
| 	(PThreadEvent::ReplaceEventBits): Ditto.
 | |
| 	(PThreadEvent::SetEvents): Ditto.
 | |
| 	(PThreadEvent::ResetEvents): Ditto.
 | |
| 	(PThreadEvent::WaitForSetEvents): Ditto.
 | |
| 	(PThreadEvent::WaitForEventsToReset): Ditto.
 | |
| 
 | |
| 2008-12-05  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBDefs.h (LOG_TASK): New log bit.
 | |
| 	* DNB.cpp (DNBProcessIsAlive): User newly abtracted MachTask class.
 | |
| 	(DNBProcessMemoryRead): Ditto.
 | |
| 	(DNBProcessMemoryWrite): Ditto.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Ditto.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints) Ditto.
 | |
| 	* MachException.cpp (MachException::Message::Receive): Cleaned up logging
 | |
| 	so it doesn't always log timeout errors.
 | |
| 	(MachException::Message::Reply): Use abstracted MachTask class for any
 | |
| 	task related queries.
 | |
| 	(MachException::PortInfo::Save): Cleaned up logging.
 | |
| 	(MachException::PortInfo::Restore): Cleaned up logging and now return an
 | |
| 	error instead of the number of restored port infos.
 | |
| 	* MachProcess.cpp (class MachProcess): Abstracted out all of the task_t
 | |
| 	related stuff (suspend, resuyme, exception ports, exception thread, and 
 | |
| 	more) into a new class MachTask.
 | |
| 	(MachProcess::Task): Now returns a reference to a MachTask class.
 | |
| 	(MachProcess::Clear): Uses new abstracted MachTask class.
 | |
| 	(MachProcess::Detach): Ditto.
 | |
| 	(MachProcess::PrivateResume): Ditto.
 | |
| 	(MachProcess::DisableBreakpoint): Ditto.
 | |
| 	(MachProcess::ExceptionMessageReceived): Ditto.
 | |
| 	(MachProcess::ExceptionMessageBundleComplete): Ditto.
 | |
| 	(MachProcess::AttachForDebug): Ditto.
 | |
| 	(MachProcess::LaunchForDebug): Ditto.
 | |
| 	(MachProcess::SBLaunchForDebug): Ditto.
 | |
| 	(MachProcess::TaskIsValid): Removed (replaced by similar functionality
 | |
| 	in the new MachTask class).
 | |
| 	(MachProcess::ExceptionPort): Ditto.
 | |
| 	(MachProcess::ExceptionPortIsValid): Ditto.
 | |
| 	(MachProcess::StartExceptionThread): Ditto.
 | |
| 	(MachProcess::Suspend): Ditto.
 | |
| 	(MachProcess::TaskResume): Ditto.
 | |
| 	(MachProcess::TaskBasicInfo): Ditto.
 | |
| 	(MachProcess::TaskBasicInfo): Ditto.
 | |
| 	(MachProcess::ReadMemory): Ditto.
 | |
| 	(MachProcess::WriteMemory): Ditto.
 | |
| 	(MachProcess::ThreadFunctionException): Ditto.
 | |
| 	
 | |
| 2008-12-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.h (DNBProcessSetEvents): New API function prototype.
 | |
| 	* DNB.cpp (DNBProcessSetEvents): New API function.
 | |
| 	(DNBProcessHalt): Send our process a SIGINT instead of suspending
 | |
| 	the task.
 | |
| 	* DNBDefs.h (NUB_STATE_IS_STOPPED): Removed up duplicate entry in macro.
 | |
| 	(eEventPrcoessAsyncInterrupt): New prcoess event bit that allows async
 | |
| 	interrupting of infinite DNBProcessWaitForEvent() function calls.
 | |
| 	* MachException.cpp (MachException::Message::Receive): Improved logging.
 | |
| 	(MachException::Message::Reply): Improved logging.
 | |
| 	* MachProcess.h (MachProcess::TaskBasicInfo): New member and static 
 | |
| 	functions.
 | |
| 	* MachProcess.cpp (MachProcess::TaskIsValid): Use new TaskBasicInfo() 
 | |
| 	member function.
 | |
| 	(MachProcess::Resume): Removed the detach parameter from the PrivateResume()
 | |
| 	function call.
 | |
| 	(MachProcess::Kill): Added a absolute timeout pointer to allow callers to
 | |
| 	wait for the signal to be received if the timeout is non-NULL.
 | |
| 	(MachProcess::TaskBasicInfo): New member and static function.
 | |
| 	(MachProcess::TaskResume): New function that resumes the task by making sure
 | |
| 	the suspend count is correctly ref counted.
 | |
| 	(MachProcess::Detach): When detaching from a process make sure it is 
 | |
| 	stopped (SIGSTOP) first, then we can successfully detach. The exception
 | |
| 	thread now also properly exits.
 | |
| 	(MachProcess::PrivateResume): Call new TaskResume function, and removed the
 | |
| 	detach functionality.
 | |
| 	(MachProcess::DisableBreakpoint): Only notify the thread list that a 
 | |
| 	breakpoint has changed if the breakpoint is going to be removed.
 | |
| 	(MachProcess::ThreadFunctionException): Added a permanent 1 second timeout
 | |
| 	for each call to mach_msg() so we can exit the thread in the event that
 | |
| 	we detach from a process/task.
 | |
| 	* test-debugnub (main): Modified to show an example of how to detach using
 | |
| 	a signal_handler to asynchronously receive a SIGINT and properly interrupt
 | |
| 	and detach from a running process.
 | |
| 
 | |
| 2008-11-26  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBDefs.h (LOG_STEP): New logging define.
 | |
| 	* DNBError.cpp (DNBError::LogThreaded): If there is no error, then
 | |
| 	log with "success: " as a prefix instead of "error: ".
 | |
| 	* arm/DBNArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Log using
 | |
| 	new LOG_STEP instead of LOG_BREAKPOINTS.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto.
 | |
| 	* MachException.cpp (MachException::Message::Dump): Log excetion header
 | |
| 	and reply header on two separate lines.
 | |
| 	* MachProcess.cpp (IsSBProcess): Check for NULL CFArrayRef returned from
 | |
| 	SBSCopyApplicationDisplayIdentifiers for SkankPhone.
 | |
| 	(MachProcess::Suspend): Check if process state is not running instead of
 | |
| 	having to receive an event after a timeout if one is given.
 | |
| 	(MachProcess::Detach): Deallocate the exception port when detaching and
 | |
| 	restore the inferior task exception ports prior to clearing and detaching.
 | |
| 	(MachProcess::PrivateResume): Grab the task's basic info and make sure we
 | |
| 	get the resume the correct number of times.
 | |
| 	(MachProcess::DisableBreakpoint): Removed unused variable opcode_restored
 | |
| 	and make sure the breakpoint is enabled before we start warning that
 | |
| 	our opcode wasn't there.
 | |
| 	* ppc/DBNArchImpl.cpp (DNBArchMachPPC::EnableHardwareSingleStep): Log 
 | |
| 	using LOG_STEP instead of LOAD_BREAKPOINTS.
 | |
| 	* RNBServices.cpp (IsSBProcess): Check for NULL CFArrayRef returned from
 | |
| 	SBSCopyApplicationDisplayIdentifiers for SkankPhone.
 | |
| 	
 | |
| 2008-11-26  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* MachProcess.h (MachProcess::Suspend): Now takes an optional absolute
 | |
| 	timeout that, if non-NULL, will case the function to return after the
 | |
| 	process has been suspended and is in a stopped state. If the timeout is
 | |
| 	NULL, then no waiting will occur.
 | |
| 	* MachProcess.cpp (MachProcess::Suspend): Ditto.
 | |
| 	(MachProcess::Detach): Now replies to all exceptions, un-suspends all
 | |
| 	threads and resumes the task.
 | |
| 	(MachProcess::ReplyToAllExceptions): New function.
 | |
| 	(MachProcess::PrivateResume): Now takes an additional parameter named
 | |
| 	detach that will do the right thing when detaching from a process.
 | |
| 	* DNBArchImpl.h (DNBArchMachI386::ThreadWillResume): Returns void.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachI386::ThreadWillResume): Returns void.
 | |
| 	* RNBServices.cpp (ListApplications): #ifdef-ed for ARM only as it
 | |
| 	currently uses SpringBoard.
 | |
| 	(IsSBProcess): Ditto.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): #ifdef-ed around
 | |
| 	ARM parts so it compiles for i386.
 | |
| 	(main): Ditto.
 | |
| 	
 | |
| 2008-11-24  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBArchProtocol.h (DNBArchProtocol::ThreadWillResume): Now returns void.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::ThreadWillResume): Returns void and
 | |
| 	has hollowed out support for software single step.
 | |
| 	(DNBArchMachARM::ThreadDidStop): Has a debug mode that uses hardware single
 | |
| 	step to verify software single step that can be enabled by defining
 | |
| 	DNB_ARCH_MACH_ARM_DEBUG_SW_STEP.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New function.
 | |
| 	* DNBArchImpl.h (DNBArchMachARM::ThreadWillResume): Returns void.
 | |
| 	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New prototype.
 | |
| 	(DNBArchMachARM::m_sw_single_step_next_pc): New member variable.
 | |
| 	(DNBArchMachARM::m_sw_single_step_break_id): New member variable.
 | |
| 	* MachThread.cpp (MachThread::ThreadWillResume): Now returns void.
 | |
| 	* MachThread.h (MachThread::ThreadWillResume): Now returns void.
 | |
| 	
 | |
| 2008-11-19  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBError.h (FlavorType): Added SpringBoard error type for arm builds.
 | |
| 	* DNBError.cpp (DNBError::AsString): Now returns SpringBoard error strings
 | |
| 	if the error type is SpringBoard.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Set the error into 
 | |
| 	RNBContext as either a POSIX error or a SpringBoard error.
 | |
| 	* RNBContext.h (m_launch_status): Changed this member to be a DNBError
 | |
| 	instead of a uint32_t.
 | |
| 	(RNBContext::LaunchStatus): Now returns a reference to the DNBError object
 | |
| 	in m_launch_status.
 | |
| 	* RNBContext.cpp (RNBContext::LaunchStatusAsString): Let DNBError handle
 | |
| 	any error string descriptions, including SpringBoard errors.
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Use new error class in 
 | |
| 	RNBContext.
 | |
| 	(RNBRemote::HandlePacket_C): Return without an erroneous error when resuming
 | |
| 	a process with a signal.
 | |
| 	* DNBArch.h (DNBArchProtocol::StepNotComplete): New protocol function with
 | |
| 	default return value.
 | |
| 	* DNBArchImpl.cpp (DNBArchMachARM::StepNotComplete): New function.
 | |
| 	(DNBArchMachARM::EnableHardwareSingleStep): Handle hardware single stepping
 | |
| 	over 32 bit thumb instructions better so we always do a true instruction
 | |
| 	level single step.
 | |
| 	* MachProcess.cpp (MachProcess::ExceptionMessageBundleComplete): Now resumes
 | |
| 	if single stepping wasn't able to complete in a single run.
 | |
| 	* MachThread.cpp (MachThread::ShouldStop): Fills in new step_more parameter
 | |
| 	if stepping is not complete.
 | |
| 	* MachThreadList.cpp (MachThreadList::ShouldStop): Pass step_more parameter
 | |
| 	to each MachThread::ShouldStop call.
 | |
| 	
 | |
| 2008-11-13  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* MachProcess.cpp (MachProcess::PosixSpawnChildForPTraceDebugging): Don't 
 | |
| 	call posix_spawnattr_setbinpref_np when launching with posix_spawn on ARM 
 | |
| 	targets as it currently selects the incorrect slice due to multiple slices
 | |
| 	that contain the same cputype, yet they all have differing cpusubtypes.
 | |
| 
 | |
| 2008-11-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h (GetContinueThread): Don't return the current thread when
 | |
| 	the continue thread is zero or -1.
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_c): Resume the process if we
 | |
| 	have no continue thread set.
 | |
| 	(RNBRemote::HandlePacket_s): Ditto.
 | |
| 	(RNBRemote::HandlePacket_C): Ditto unless a continue address is specified
 | |
| 	in which case we will only succeed if we have one thread when the continue
 | |
| 	with signal and address doesn't have a continue thread specified.
 | |
| 	(RNBRemote::HandlePacket_S): Ditto.
 | |
| 	* DNB.cpp (DNBProcessResumeWithSignal): New function.
 | |
| 	(DNBProcessResume): Added better logging.
 | |
| 	(DNBProcessHalt): Ditto.
 | |
| 	(DNBThreadResume): Ditto.
 | |
| 	(DNBThreadResumeWithSignal): Ditto.
 | |
| 	* DNB.h (DNBProcessResumeWithSignal): New prototype.
 | |
| 	* DNBError.cpp (DNBError::LogThreaded): New function.
 | |
| 	* DNBError.h (DNBError::LogThreaded): New prototype.
 | |
| 	* DNBLog.cpp (_DNBLogThreaded): Added sequence ID for threaded logs.
 | |
| 	(_DNBLogThreadedIf): Ditto.
 | |
| 	* MachException.cpp (MachException::Data::GetStopInfo): Use new SoftSignal()
 | |
| 	accessor.
 | |
| 	(MachException::Data::DumpStopReason): Ditto.
 | |
| 	(MachException::Message::Reply): Added better logging and log using the
 | |
| 	soft signal if our task matches that in the exception.
 | |
| 	(MachException::Data::Dump): Added better logging.
 | |
| 	* MachException.h (IsSoftSignal): Removed.
 | |
| 	(SoftSignal): New function that returns the soft signal in the exception
 | |
| 	data if there is one, or zero otherwise.
 | |
| 	* MachProcess.cpp (MachProcess::Suspend): Improved logging.
 | |
| 	(MachProcess::Resume): Ditto.
 | |
| 	(MachProcess::PrivateResume): Handle the case where the process is told
 | |
| 	to resume with a signal by matching the signal up to the thread that had
 | |
| 	the soft signal if no thread id is specified.
 | |
| 	* MachThread.cpp (MachThread::Suspend): Improved logging.
 | |
| 	(MachThread::Resume): Improved logging.
 | |
| 	(MachThread::RestoreSuspendCount): Improved logging.
 | |
| 	(MachThread::Resume): Improved logging.
 | |
| 	(MachThread::Dump): Improved logging.
 | |
| 	* MachThreadList.cpp (MachThreadList::Dump): Improved logging.
 | |
| 	
 | |
| 2008-10-22  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (RNBRunLoopMode): Added a new enum value
 | |
| 	eRNBRunLoopModeInferiorAttaching.
 | |
| 	(g_long_options): Added "--attach=PID" for attaching to existing processes
 | |
| 	and "--launch=(auto|posix|fork|springboard)" options.
 | |
| 	(RNBRunLoopLaunchInferior): Now launches process with new 
 | |
| 	nub_launch_flavor_t enum that can be overridden with the --launch option.
 | |
| 	(RNBRunLoopLaunchAttaching): New function for attaching to existing 
 | |
| 	processes.
 | |
| 	(main): Added command line option support for the "--attach" and "--launch" 
 | |
| 	options and added attach to pid support and better logging.
 | |
| 	* DNB.cpp/h: (DNBProcessLaunch): Added nub_launch_flavor_t and error 
 | |
| 	parameter for more precise control when launching processes.
 | |
| 	(DNBProcessSBLaunch): Removed function as launching with SpringBoard can 
 | |
| 	now be done using DNBProcessLaunch with launch_flavor being set to
 | |
| 	eLaunchTypeSpringBoard (arm only).
 | |
| 	(DNBProcessSBAttach): Removed function (SpringBoard processes are now auto
 | |
| 	detected in the MachProcess::AttachForDebug function on ARM).
 | |
| 	* DNBDefs.h (NUB_GENERIC_ERROR): New generic error definition.
 | |
| 	(nub_launch_flavor_t): New enumeration used for control over process 
 | |
| 	launching.
 | |
| 	* MachProcess.cpp (IsSBProcess): New function.
 | |
| 	(MachProcess::AttachForDebug): Removed flags parameter that was being used
 | |
| 	for SpringBoard flags and we now detect if a process belongs to SpringBoard
 | |
| 	by calling IsSBProcess.
 | |
| 	(MachProcess::LaunchForDebug): Now has launch parameter that tells it how
 | |
| 	to launch the inferior process and there is also an error code that gets 
 | |
| 	returned. This function can now launch using fork + exec, posix_spawn,
 | |
| 	or SpringBoard on ARM targets.
 | |
| 	(MachProcess::SBLaunchForDebug): Now uses DNBError reference instead of
 | |
| 	uint32_t pointer for the error code.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
 | |
| 
 | |
| 2008-10-22  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* MacOSX/arm/DNBArchImpl.cpp (DNBArchMachARM::GetRegisterValue): Set
 | |
| 	register value to a uint32 value instead of a float64 value for s0 - 
 | |
| 	s31.
 | |
| 
 | |
| 2008-10-17  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Don't listen for
 | |
| 	the qLaunchSuccess if we aren't doing a lockdown connnection.
 | |
| 
 | |
| 2008-10-13  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h (class RNBRemote): Added m_watchpoints member.
 | |
| 	* DNB.cpp (DNBBreakpointSet): Added boolean hardware parameter for
 | |
| 	requesting that a hardware breakpoint be set.
 | |
| 	(DNBWatchpointSet): New function.
 | |
| 	(DNBWatchpointClear): New function.
 | |
| 	(DNBWatchpointGetHitCount): New function.
 | |
| 	(DNBWatchpointGetIgnoreCount): New function.
 | |
| 	(DNBWatchpointSetIgnoreCount): New function.
 | |
| 	(DNBWatchpointSetCallback): New function.
 | |
| 	(DNBWatchpointPrint): New function.
 | |
| 	* DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Modified to emit
 | |
| 	a single DNBLog() call so there aren't multiple newlines when logging
 | |
| 	to ASL.
 | |
| 	* RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Use new
 | |
| 	process state changed events.
 | |
| 	* DNBBreakpoint.h (class DNBBreakpoint): Removed m_state member and
 | |
| 	added m_tid, m_enabled, m_hw_preferred, m_is_watchpoint, m_watch_read,
 | |
| 	m_watch_write, and m_hw_index.
 | |
| 	(DNBBreakpoint::ThreadID()): New accessor.
 | |
| 	(DNBBreakpoint::IsEnabled()): New accessor.
 | |
| 	(DNBBreakpoint::SetEnabled()): New accessor.
 | |
| 	(DNBBreakpoint::IsWatchpoint()): New accessor.
 | |
| 	(DNBBreakpoint::IsBreakpoint()): New accessor.
 | |
| 	(DNBBreakpoint::SetIsWatchpoint()): New accessor.
 | |
| 	(DNBBreakpoint::WatchpointRead()): New accessor.
 | |
| 	(DNBBreakpoint::WatchpointWrite()): New accessor.
 | |
| 	(DNBBreakpoint::HardwarePreferred()): New accessor.
 | |
| 	(DNBBreakpoint::IsHardware()): New accessor.
 | |
| 	(DNBBreakpoint::GetHardwareIndex()): New accessor.
 | |
| 	(DNBBreakpoint::SetHardwareIndex()): New accessor.
 | |
| 	(DNBBreakpoint::ThreadID()): New accessor.
 | |
| 	(DNBBreakpoint::GetState()): Removed accessor.
 | |
| 	(DNBBreakpoint::SetState()): Removed accessor.
 | |
| 	(DNBBreakpoint::AddBreakpoint()): Renamed to Add().
 | |
| 	(DNBBreakpoint::RemoveBreakpoint()): Renamed to Remove().
 | |
| 	(DNBBreakpoint::FindBreakIDForAddress()): Renamed to FindIDByAddress().
 | |
| 	(DNBBreakpoint::ShouldStopAtBreakpoint()): Renamed to ShouldStop().
 | |
| 	(DNBBreakpoint::SetBreakpointCallback()): Renamed to SetCallback().
 | |
| 	(DNBBreakpoint::FindBreakpointWithAddress()): Renamed to 
 | |
| 	FindByAddress().
 | |
| 	(DNBBreakpoint::FindBreakpointWithBreakID()): Renamed to FindByID().
 | |
| 	(DNBBreakpoint::GetBreakpointAtIndex()): Renamed to GetByIndex().
 | |
| 	* FunctionProfiler.h: New header for subclass of DNBRuntimeAction.
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_v): Use new process state 
 | |
| 	changed events.
 | |
| 	(RNBRemote::HandlePacket_z): Implement the hardware breakpoint and
 | |
| 	watchpoint commands z1, Z1, z2, Z2, z3 and Z3
 | |
| 	* PThreadEvent.h (PThreadEvent::GetEventBits): Made member function 
 | |
| 	const.
 | |
| 	(PThreadEvent::WaitForSetEvents): Ditto.
 | |
| 	(PThreadEvent::WaitForEventsToReset): Ditto.
 | |
| 	(PThreadEvent::WaitForResetAck): Ditto.
 | |
| 	(PThreadEvent::m_mutex): Made class member mutable.
 | |
| 	(PThreadEvent::m_set_condition): Made class member mutable.
 | |
| 	(PThreadEvent::m_reset_condition): New mutable class member.
 | |
| 	* ProfileObjectiveC.cpp
 | |
| 	* DNBArch.h (DNBArch::NotifyException): Now has default implementation
 | |
| 	that returns false.
 | |
| 	(DNBArch::NumSupportedHardwareBreakpoints): New virtual member 
 | |
| 	function with a default implementation.
 | |
| 	(DNBArch::NumSupportedHardwareWatchpoints): Ditto.
 | |
| 	(DNBArch::EnableHardwareBreakpoint): Ditto.
 | |
| 	(DNBArch::EnableHardwareWatchpoint): Ditto.
 | |
| 	(DNBArch::DisableHardwareBreakpoint): Ditto.
 | |
| 	(DNBArch::DisableHardwareWatchpoint): Ditto.
 | |
| 	* DNB.h (DNBBreakpointSet): New take a HARDWARE parameter that allows
 | |
| 	requests for setting hardware breakpoints.
 | |
| 	(DNBWatchpointSet): New function prototype.
 | |
| 	(DNBWatchpointClear): New function prototype.
 | |
| 	(DNBWatchpointGetHitCount): New function prototype.
 | |
| 	(DNBWatchpointGetIgnoreCount): New function prototype.
 | |
| 	(DNBWatchpointSetIgnoreCount): New function prototype.
 | |
| 	(DNBWatchpointSetCallback): New function prototype.
 | |
| 	(DNBWatchpointPrint): New function prototype.
 | |
| 	* MacOSX/arm/DNBArchImpl.cpp: Added hardware breakpoint and watchpoint
 | |
| 	support for ARM.
 | |
| 	(DNBArchMachARM::GetCPUType): New function.
 | |
| 	(DNBArchMachARM::DumpDBGState): New function.
 | |
| 	(DNBArchMachARM::GetDBGState): New function.
 | |
| 	(DNBArchMachARM::SetDBGState): New function.
 | |
| 	(DNBArchMachARM::EnableHardwareSingleStep): New function.
 | |
| 	(DNBArchMachARM::EnableHardwareBreakpoint): New function.
 | |
| 	(DNBArchMachARM::NotifyException): Removed.
 | |
| 	(DNBArchMachARM::DisableHardwareBreakpoint): New function.
 | |
| 	(DNBArchMachARM::EnableHardwareWatchpoint): New function.
 | |
| 	(DNBArchMachARM::DisableHardwareWatchpoint): New function.
 | |
| 	* MacOSX/MachThread.cpp (MachThread::Suspend): Added better logging.
 | |
| 	(MachThread::Resume): Ditto.
 | |
| 	(MachThread::RestoreSuspendCount): Ditto.
 | |
| 	(MachThread::Dump): Ditto.
 | |
| 	(MachThread::EnableHardwareBreakpoint): New function.
 | |
| 	(MachThread::EnableHardwareWatchpoint): New function.
 | |
| 	(MachThread::DisableHardwareBreakpoint): New function.
 | |
| 	(MachThread::DisableHardwareWatchpoint): New function.
 | |
| 	* MacOSX/MachThreadList.h (MachThreadList::GetLastError): Removed.
 | |
| 	(MachThread::EnableHardwareBreakpoint): New prototype.
 | |
| 	(MachThread::DisableHardwareBreakpoint): New prototype.
 | |
| 	(MachThread::EnableHardwareWatchpoint): New prototype.
 | |
| 	(MachThread::DisableHardwareWatchpoint): New prototype.
 | |
| 	(class MachThread): Remove m_err member variable.
 | |
| 	* MacOSX/ppc/DNBArchImpl.cpp (DNBArchMachPPC::GetCPUType) New 
 | |
| 	function.
 | |
| 	(DNBArchMachPPC::NotifyException): Removed.
 | |
| 	* MacOSX/ppc/DNBArchImpl.h (DNBArchMachPPC::NotifyException): Removed.
 | |
| 	* MacOSX/MachThread.h (MachThread::EnableHardwareBreakpoint): New 
 | |
| 	prototype.
 | |
| 	(MachThread::EnableHardwareWatchpoint): New prototype.
 | |
| 	(MachThread::DisableHardwareBreakpoint): New prototype.
 | |
| 	(MachThread::DisableHardwareWatchpoint): New prototype.
 | |
| 	(class MachThread): Renambed class member m_exception to 
 | |
| 	m_stop_exception.
 | |
| 	* MacOSX/MachProcess.cpp (MachProcess::SetState): Updated to use new
 | |
| 	process event enumerations.
 | |
| 	(MachProcess::PrivateResume): Added better logging.
 | |
| 	(MachProcess::CreateBreakpoint): Added bool HARDWARE parameter for 
 | |
| 	requesting hardware breakpoints.
 | |
| 	(MachProcess::CreateWatchpoint): New function.
 | |
| 	(MachProcess::DisableAllWatchpoints): New function.
 | |
| 	(MachProcess::DisableWatchpoint): New function.
 | |
| 	(MachProcess::DumpWatchpoint): New function.
 | |
| 	(MachProcess::EnableBreakpoint): Enabled breakpoints in hardware if
 | |
| 	requested and supported.
 | |
| 	(MachProcess::DisableBreakpoint): Disable hardware breakpoints if that
 | |
| 	is how they were set.
 | |
| 	(MachProcess::EnableWatchpoint): New function.
 | |
| 	(MachProcess::ExceptionMessageBundleComplete): Wait for the 
 | |
| 	eEventProcessRunningStateChanged event to be reset before changing 
 | |
| 	state to stopped to avoid race condition with very fast start/stops.
 | |
| 	(MachProcess::LaunchForDebug): Added posix_spawn support.
 | |
| 	(MachProcess::PosixSpawnChildForPTraceDebugging): New function.
 | |
| 	* MacOSX/i386/DNBArchImpl.cpp (DNBArchMachI386::GetCPUType): New
 | |
| 	function.
 | |
| 	* MacOSX/i386/DNBArchImpl.h (DNBArchMachI386::GetCPUType): New
 | |
| 	prototype.
 | |
| 	* MacOSX/MachProcess.h (PosixSpawnChildForPTraceDebugging): New
 | |
| 	prototype.
 | |
| 	* MacOSX/MachException.cpp (class MachException::ThreadMessage): 
 | |
| 	Renamed	class to MachException::Data.
 | |
| 	* MacOSX/MachThreadList.cpp (class MachThreadList): Removed m_err
 | |
| 	class member.
 | |
| 	(MachThreadList::EnableHardwareBreakpoint): New function.
 | |
| 	(MachThreadList::DisableHardwareBreakpoint): New function.
 | |
| 	(MachThreadList::EnableHardwareWatchpoint): New function.
 | |
| 	(MachThreadList::DisableHardwareWatchpoint): New function.
 | |
| 	* MacOSX/MachException.h (class MachException::ThreadMessage): 
 | |
| 	Renamed	class to MachException::Data.
 | |
| 	* DNBDefs.h (nub_watch_t): New typedef.
 | |
| 	(INVALID_NUB_HW_INDEX): New macro definition.
 | |
| 	(WATCH_TYPE_READ): New macro definition.
 | |
| 	(WATCH_TYPE_WRITE): New macro definition.
 | |
| 	(NUB_STATE_IS_RUNNING): New macro to see if state is a running state.
 | |
| 	(NUB_STATE_IS_STOPPED): New macro to see if state is a stopped state.
 | |
| 	(eEventProcessStateChanged): Deprecated.
 | |
| 	(eEventProcessRunningStateChanged): New process event state.
 | |
| 	(eEventProcessStoppedStateChanged): New process event state.
 | |
| 	(LOG_WATCHPOINTS): New macro definition for logging watchpoints.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Use new process
 | |
| 	event states.
 | |
| 	* FunctionProfiler.cpp: New class that allows single stepping through
 | |
| 	an address range for tracing exact call graphs.
 | |
| 
 | |
| 2008-09-22  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * RNBRemote.h (GetContinueThread): If the continue thread is zero or
 | |
|         -1 then return GetCurrentThread().
 | |
|         * RNBRemote.cpp (m_packets): Made the vCont functions call 
 | |
|         RNBRemote::HandlePacket_v().
 | |
|         (RNBRemote::HandlePacket_H): Cleaned up whitespace.
 | |
|         (RNBRemote::HandlePacket_last_signal): Return actual signal values for
 | |
|         EXE_SOFTWARE/EXC_SOFT_SIGNAL mach exceptions.
 | |
|         (RNBRemote::HandlePacket_v): Implemented the 'vCont?' and 'vCont;' 
 | |
|         packets.
 | |
|         (RNBRemote::HandlePacket_c): Handle the case where an address is 
 | |
|         provided.
 | |
|         (RNBRemote::HandlePacket_C): Implemented the continue with signal 
 | |
|         including when an address is provided.
 | |
|         (RNBRemote::HandlePacket_S): Implemented the step with signal 
 | |
|         including when an address is provided.
 | |
|         * DNB.cpp (DNBProcessResume): Pass 0 as the signal when resuming
 | |
|         a process without specifying a thread.
 | |
|         (DNBThreadResume): Pass 0 as the signal when resuming a specific thread.
 | |
|         (DNBThreadResumeWithSignal): New function.
 | |
|         * DNB.h (DNBThreadResumeWithSignal): New prototype.
 | |
|         * MachException.h (MachException::Message::Reply): Added a signal
 | |
|         parameter.
 | |
|         * MachException.cpp (MachException::Message::Reply): Update the thread
 | |
|         with the new SIGNAL parameter instead of always zero so signals can be
 | |
|         passed on to programs.
 | |
|         * MachProcess.h (MachProcess::Resume): Added a signal parameter.
 | |
|         * MachProcess.h (MachProcess::PrivateResume): Added a signal parameter.
 | |
|         * MachProcess.cpp (MachProcess::Resume): Pass new SIGNAL parameter to
 | |
|         MachProcess::PrivateResume.
 | |
|         * MachProcess.cpp (MachProcess::PrivateResume): Pass new SIGNAL 
 | |
|         parameter to the mach exception reply.
 | |
| 
 | |
| 2008-08-08  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * DNB.cpp (gProcessMap): Removed static C++ global.
 | |
|         (GetProcessMap): New Function.
 | |
|         (AddProcessToMap): New function.
 | |
|         (RemoveProcessFromMap): New function.
 | |
|         (GetProcessSP): Use new GetProcessMap function to get process list.
 | |
| 
 | |
| 2008-07-30  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * debugserver-entitlements.plist (get-task-allow): Removed.
 | |
|         (run-invalid-allow): Added boolean value set to TRUE.
 | |
| 
 | |
| 2008-04-18  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * MachProcess.cpp (MachProcess::Task): Added getuid(), geteuid(), 
 | |
|         getgid(), getegid() to the log message if task for pid fails.
 | |
| 
 | |
| 2008-04-07  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * RNBContext.cpp (RNBContext::LaunchStatusAsString): Removed unused
 | |
|         tmp_str variable.
 | |
| 
 | |
| 2008-04-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * CFString.cpp/h (UTF8): Made a static function that can convert
 | |
|         a CFStringRef to UTF8.
 | |
| 
 | |
| 2008-04-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * test-remotenub.cpp (main): Make sure we exit after we send the 
 | |
|         application list.
 | |
| 
 | |
| 2008-04-04  Greg Clayton  <gclayton@apple.com>
 | |
|         
 | |
|         * RNBServices.h (IsSBProcess): New prototype;
 | |
|         * RNBServices.cpp (IsSBProcess): New function that returns true it
 | |
|         SpringBoard owns or knows about the process.
 | |
|         * RNBRemote.cpp (RNBRemote::HandlePacket_v): Made attach work correctly.
 | |
|         * DNB.cpp (DNBProcessSBAttach): New function for use when attaching to
 | |
|         a process owned by SpringBoard.
 | |
|         (DNBProcessAttach): Fixed an issue where a local was shadowing a 
 | |
|         parameter.
 | |
|         * DNB.h (DNBProcessSBAttach): New prototype.
 | |
|         * MachProcess.cpp (MachProcess::AttachForDebug): AttachForDebug now
 | |
|         takes some flags so it knows to enable SpringBoard functionality.
 | |
|         * MachProcess.h (MachProcess::AttachForDebug): Added flags parameter
 | |
|         to prototype.
 | |
|         
 | |
| 2008-04-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Handle the new
 | |
|         attach packet and watch for connection being lost.
 | |
|         (main): handle the --applist option when there we aren't using lockdown
 | |
|         by printing the results to stdout and exiting with appropriate error code
 | |
|         if we failed. Also handle the new prototype for ListApplications.
 | |
|         * RNBServices.h (ListApplications): Change first parameter to be a std::string
 | |
|         that will get the contents of the plist so we can use this for more than
 | |
|         just lockdown.
 | |
|         * RNBServices.cpp (ListApplications): Change first parameter to be a std::string
 | |
|         that will get the contents of the plist so we can use this for more than
 | |
|         just lockdown and also fixed the logic so we actually create a full list of
 | |
|         applications instead of just overwriting the first entry.
 | |
|         * RNBRemote.h (PacketEnum): Added a new 'vattach' enum for the "vAttach;PID"
 | |
|         gdb remote command.
 | |
|         (RNBRemote::HandlePacket_v): New prototype;
 | |
|         * RNBRemote.cpp (RNBRemote::CreatePacketTable): add the vattach packet definition
 | |
|         to m_packets.
 | |
|         (RNBRemote::HandlePacket_v): New function that handles attach to a process.
 | |
| 
 | |
| 2008-04-03  Jim Ingham  <jingham@apple.com>
 | |
| 
 | |
| 	* RNBRemote.h: Add query_launch_success to packet enum.
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable_): Add query_launch_success.
 | |
| 	(HandlePacket_q): Handle query_launch_success.
 | |
| 	* DNB.cpp (DNBProcessSBLaunch): Pass in launch_retval.
 | |
| 	* DNB.h: Change prototype of DNBProcessSBLaunch to take launch_retval.
 | |
| 	* RNBContext.cpp (RNBContext::LaunchStatusAsString): New function.
 | |
| 	* RNBContext.h (RNBContext): Add m_launch_status & accessors.
 | |
| 	* macosx/MachProcess.cpp (MachProcess::SBLaunchForDebug): Pass launch_retval.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Accept & set launch_retval.
 | |
| 	* Macosx/MachProcess.h: Change prototypes of SBLaunchForDebug &
 | |
| 	ForkChildForPTraceDebugging to accept launch_retval.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Get the launch status and
 | |
| 	put it in the context, then wait for the qLaunchStatus packet.
 | |
| 	
 | |
| 2008-04-03  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * com.apple.debugserver.plist: Changed plist so debugserver
 | |
|         runs as mobile user.
 | |
|         * com.apple.debugserver.applist.plist: Ditto.
 | |
| 
 | |
| 2008-04-03  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging): 
 | |
|         Increased SBS application launch timeout to 30 seconds.
 | |
| 
 | |
| 2008-03-27 Christopher Friesen <friesen@apple.com>
 | |
| 
 | |
|         * RNBServices.h: Pass tasks from SpringBoard as a plist
 | |
|         * RNBServices.cpp: Ditto.
 | |
|         * test-remotenub.cpp: added --applist flag
 | |
|         * com.apple.debugserver.applist.plist: Agent plist
 | |
| 
 | |
| 2008-03-17  Jim Ingham  <jingham@apple.com>
 | |
| 
 | |
|         * DNB.h: Pass envp to DNBProcessLaunch & DNBProcessSBLaunch.
 | |
|         * DNB.cpp: Ditto.
 | |
|         * MachProcess.h: Ditto for *LaunchForDebug and 
 | |
|         *ForkChildForPtraceDebugging.
 | |
|         * MachProcess.cpp (MachProcess::LaunchForDebug): Pass on envp.
 | |
|         (MachProcess::SBLaunchForDebug): Ditto.
 | |
|         (MachProcess::ForkChildForPtraceDebugging): Accept envp, haven't actually
 | |
|         implemented the passing yet.
 | |
|         (MachProcess::SBForkChildForPtraceDebuggin): Accept envp, convert to
 | |
|         CFDictionary and pass to SBSLaunchApplication.
 | |
|         * RNBContext.h: Add environment to the context.
 | |
|         * RBNContext.cpp (RNBContext::EnvironmentAtIndex): New function.
 | |
|         * RNBRemote.h: Add set_environment_variable to the PacketEnum.
 | |
|         * RNBRemote.cpp (RNBRemote::CreatePacketTable): Add QEnvironment:.
 | |
|         * (RNBRemote::HandlePacket_Q): Ingest the environment variable.
 | |
|         * test-remotenub.cpp (RNBRunLoppLaunchInferior): Convert the env
 | |
|         array in the context into an array, and pass it to the DNBProcess*Launch
 | |
|         methods.
 | |
| 
 | |
| 2008-03-17  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* DNBBreakpoint.cpp (DNBBreakpointList::GetBreakpointAtIndex): New
 | |
| 	functions (const and non-const versions).
 | |
| 	* DNBBreakpoint.h (DNBBreakpointList::GetBreakpointAtIndex): New
 | |
| 	prototypes (const and non-const versions).
 | |
| 	* DNBError.h (DNBError::Success()): Don't use KERN_SUCCESS define.
 | |
| 	(DNBError::Fail()): Don't use KERN_SUCCESS define.
 | |
| 	* MachProcess.cpp (MachProcess::DisableAllBreakpoints): New function.
 | |
| 	(MachProcess::Detach): Added initial implementation that will halt
 | |
| 	the process, disable all breakpoints and call PT_DETACH.
 | |
| 	* MachProcess.h (MachProcess::DisableAllBreakpoints): New prototype.
 | |
| 
 | |
| 2008-03-04  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * RNBRemote.h (RNBRemote::SendHexEncodedBytePacket): New prototype.
 | |
|         * RNBRemote.cpp (RNBRemote::SendHexEncodedBytePacket): New function.
 | |
|         (RNBRemote::SendSTDOUTPacket): Use SendHexEncodedBytePacket function
 | |
|         to send bytes.
 | |
|         (RNBRemote::SendSTDERRPacket): Ditto.
 | |
|         (RNBRemote::HandlePacket_q): Return a valid thread info string for 
 | |
|         qThreadExtraInfo queries.
 | |
|         * DNB.cpp (DNBThreadPrintStopReason): Commented out unused function.
 | |
|         (DNBThreadGetInfo): New function.
 | |
|         * DNB.h (DNBThreadPrintStopReason): Commented out prototype.
 | |
|         (DNBThreadGetInfo): New prototype.
 | |
|         * MachProcess.cpp (MachProcess::GetThreadInfo): New function.
 | |
|         * MachProcess.h (MachProcess::GetThreadInfo): New prototype.
 | |
|         * MachThreadList.cpp (MachThreadList::GetThreadInfo): New function.
 | |
|         * MachThreadList.h (MachThreadList::GetThreadInfo): New prototype.
 | |
|         * MachThread.cpp (MachThread::GetBasicInfoAsString): New function.
 | |
|         (MachThread::InferiorThreadID): New function.
 | |
|         * MachThread.cpp (MachThread::GetBasicInfoAsString): New prototype.
 | |
|         (MachThread::InferiorThreadID): New prototype.
 | |
|         
 | |
| 2008-02-27  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Set the
 | |
|         current thread when we notify a thread has stopped to subsequent
 | |
|         g and p packets get the correct data.
 | |
| 
 | |
| 2008-02-26  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Add query_thread_extra_info enum.
 | |
| 	* RNBRemote.cpp: Add support for qThreadExtraInfo.
 | |
| 	Currently we return 'Ok' as the packet status for
 | |
|         every thread.
 | |
| 
 | |
| 2008-02-26  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Correct handling
 | |
| 	of qfThreadInfo/qsThreadInfo.
 | |
| 
 | |
| 2008-02-20  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Change default for gdb's max incoming packet size to
 | |
| 	reflect the real default size.
 | |
| 	* RNBRemote.cpp (HandlePacket_Q): Correct the string comparisions for
 | |
| 	the QSetMaxPayloadSize and QSetMaxPacketSize packets.
 | |
| 
 | |
| 2008-02-19 Christopher Friesen <friesen@apple.com>
 | |
| 
 | |
|         * CFDataFormatters.c: CoreFoundation data formatters added to project.
 | |
| 
 | |
| 2008-02-19  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Record the max payload size, not the max packet
 | |
|         size for less ambiguous meaning.
 | |
| 	* RNBRemote.cpp: Add support for QSetMaxPayloadSize: packet which
 | |
| 	should have a clearer meaning than QSetMaxPacketSize.  
 | |
| 	QSetMaxPacketSize will be removed once we get have a chance to get
 | |
| 	a new debugserver and gdb submitted.
 | |
| 
 | |
| 2008-02-18  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Make default size 1024.
 | |
| 	* RNBRemote.cpp: Questionmark packet should stay under 
 | |
| 	max_packet_size - 5 to allow for start, end, checksum and nul
 | |
| 	char bytes.
 | |
| 
 | |
| 2008-02-18  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Add m_max_packet_size to class defn.
 | |
| 	* RNBRemote.cpp: Initialize it, use it.
 | |
| 
 | |
| 2008-02-18  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Add set_max_packet_size.
 | |
| 	* RNBRemote.cpp: Add QSetMaxPacketSize packet handling.
 | |
| 
 | |
| 2008-02-18  Greg Clayton <gclayton@apple.com>
 | |
|     
 | |
|         * test-remotenub.cpp (HandleProcessStateChange): Call new
 | |
|         RNBRemote::FlushSTDIO function.
 | |
|         (RNBRunLoopInferiorExecuting): Ditto.
 | |
|         * RNBRemote.h (RNBRemote::FlushSTDIO): New prototype.
 | |
|         * RNBRemote.cpp (RNBRemote::FlushSTDIO): New function to
 | |
|         centralize the stdio.
 | |
| 
 | |
| 2008-02-18  Greg Clayton <gclayton@apple.com>
 | |
| 
 | |
| 	* DNB.cpp (DNBProcessWaitForEvent): Added timeout pointer as
 | |
| 	parameter that can be NULL for infinite timeout to simplify
 | |
| 	the DNB interface.
 | |
| 	(DNBProcessTimedWaitForEvent): Removed function.
 | |
| 	* DNB.h (DNBProcessWaitForEvent): Added timeout argument.
 | |
| 	(DNBProcessTimedWaitForEvent): Removed prototype.
 | |
| 	* DNBTimer.h (DNBTimer::OffsetTimeOfDay): New function.
 | |
| 	* CFString.cpp (CFString::GetLength() const): New function.
 | |
| 	* CFString.h (CFString::GetLength() const): New prototype.
 | |
| 	* MachProcess.h (MachProcess class): Removed m_attached and
 | |
| 	added m_flags.
 | |
| 	* MachProcess.cpp (MachProcess::AttachForDebug): Set m_flags 
 | |
| 	to indicate we attached.
 | |
| 	(MachProcess::SBLaunchForDebug): Set m_flags to indicate we 
 | |
| 	attached using SpringBoard and that we attached.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Changed to new
 | |
| 	SpringBoardServices API.
 | |
| 	(MachProcess::ThreadFunctionException): Added code that will
 | |
| 	renew a watchdog assertion when we launch apps through 
 | |
| 	SpringBoardServices.
 | |
| 	* PThreadEvent.cpp (PThreadEvent::WaitForSetEvents): Simplified
 | |
| 	PThreadEvent API to have only one version of WaitForSetEvents
 | |
| 	that has an optional timeout pointer argument.
 | |
| 	* RNBContext.cpp (RNBContext::StopProcessStatusThread): Adapt
 | |
| 	to new PThreadEvent API changes.
 | |
| 	(RNBContext::ThreadFunctionProcessStatus): Adapt to new 
 | |
| 	DNBProcessWaitForEvent API changes.
 | |
| 	* RNBRemote.cpp (RNBRemote::StopReadRemoteDataThread): Adapt
 | |
| 	to new PThreadEvent API changes.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Adapt to new 
 | |
| 	DNBProcessWaitForEvent API changes.
 | |
| 	(RNBRunLoopInferiorExecuting): Process STDIO first, then
 | |
| 	incoming packets.
 | |
| 
 | |
| 2008-02-14  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging):
 | |
| 	Set mode bits on slave side of pty.
 | |
| 
 | |
| 2008-02-12  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
|         * DNB.cpp (DNBEnableLogging): Removed function.
 | |
|         (DNBThreadPrintStopReason): Removed the file handle from this 
 | |
|         function and use DNBLog calls.
 | |
|         * DNB.h (DNBEnableLogging): Removed function prototype.
 | |
|         (DNBThreadPrintStopReason): Removed the file handle
 | |
|         from the function prototype in favor of using DNBLog calls.
 | |
|         * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle to use
 | |
|         DNBLog for the logging and print a log line each time a full line
 | |
|         is ready for output after caching it in a local buffer.
 | |
|         * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle from
 | |
|         prototype.
 | |
|         * DNBDefs.h (DNBCallbackLog): New callback prototype for all 
 | |
|         logging. 
 | |
|         DNBLog.cpp(g_debug_opt): Renamed to d_debug and made it a file
 | |
|         static.
 | |
|         (DNBLogGetDebug): New accessor function for g_debug.
 | |
|         (DNBLogSetDebug): New accessor function for g_debug.
 | |
|         (g_verbose): Made into a file static and added accessors.
 | |
|         (DNBLogGetVerbose): New accessor function for g_verbose.
 | |
|         (DNBLogSetVerbose): New accessor function for g_verbose.
 | |
|         (DNBLogSetLogCallback): New function call that registers a logging
 | |
|         callback for all logging in libdebugnub.dylib and any code that
 | |
|         loads it.
 | |
|         (DNBLogToASL): Removed function as it is deprecated in favor of
 | |
|         using DNBLogSetLogCallback to regsiter a callback function that
 | |
|         implements the logging.
 | |
|         (DNBLogToFile): Ditto.
 | |
|         (DNBLogCloseLogFile): Ditto.
 | |
|         (DNBLogToFile): Ditto.
 | |
|         (DNBLogToFile): Ditto.
 | |
|         (_DNBLogPuts): Removed unused function.
 | |
|         (_DNBLogVAPrintf): Calls the callback function to do the logging
 | |
|         if one has been registered.
 | |
|         * DNBLog.h (DNBLOG_FLAG_FATAL): New defines that get passed to
 | |
|         any registered logging callback functions.
 | |
|         (DNBLOG_FLAG_FATAL): Ditto.
 | |
|         (DNBLOG_FLAG_ERROR): Ditto.
 | |
|         (DNBLOG_FLAG_WARNING): Ditto.
 | |
|         (DNBLOG_FLAG_DEBUG): Ditto.
 | |
|         (DNBLOG_FLAG_VERBOSE): Ditto.
 | |
|         (DNBLOG_FLAG_THREADED): Ditto.
 | |
|         (DNBLog*): All logging calls are now exported from libdebugnub.dylib
 | |
|         so there aren't two copies (one in debugserver and one in debugnub).
 | |
|         C99 vararg Macros wrap all logging calls so no var arg processing
 | |
|         occurs when logging is disabled.
 | |
|         * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Removed file
 | |
|         handle and now use DNBLog calls.
 | |
|         * DNBRegisterInfo.h (DNBRegisterValueClass::Dump): Removed file
 | |
|         handle from prototype.
 | |
|         * MachException.cpp (catch_mach_exception_raise_state_identity): 
 | |
|         Removed newlines from logging call.
 | |
|         (catch_mach_exception_raise): Ditto.
 | |
|         (MachException::Message::Dump): Removed file handle from params
 | |
|         and removed newlines from logging call.
 | |
|         (MachException::ThreadMessage::DumpStopReason): Removed file handle
 | |
|         from params and use DNBLog for logging output.
 | |
|         (MachException::ThreadMessage::Dump): Log using DNBLog instead of
 | |
|         file handle.
 | |
|         * MachProcess.cpp (MachProcess::DumpThreadStoppedReason): Ditto.
 | |
|         (MachProcess::ReadMemory): Ditto.
 | |
|         (MachProcess::WriteMemory): Ditto.
 | |
|         (ExceptionMessageBundleComplete): Ditto.
 | |
|         * MachThread.cpp (MachThread::Dump): Ditto.
 | |
|         (MachThread::DumpRegisterState): Ditto.
 | |
|         * MachThreadList.cpp (MachThreadList::DumpThreadStoppedReason): Ditto.
 | |
|         (MachThreadList::Dump): Ditto.
 | |
|         * RNBRemote.cpp (set_logging): Use new function callback registration
 | |
|         calls when enabling ASL logging.
 | |
|         test-remotenub.cpp (ASLLogCallback): New function to handle all ASL
 | |
|         logging. This function gets registered with libdebugnub.dylib when we
 | |
|         want to log using ASL.
 | |
|         (FileLogCallback): New function to handle all file logging. This 
 | |
|         function gets registered with libdebugnub.dylib when we want to log
 | |
|         to a 'FILE *'.
 | |
|         (main): Register the logging callback functions when we want to log
 | |
|         to file or using ASL.
 | |
| 
 | |
| 2008-02-12  Greg Clayton  <gclayton@apple.com>
 | |
|     
 | |
|         * test-remotenub.cpp (main): Default to ASL logging with no log
 | |
|         bits set to allow for warning and error logging.
 | |
|         * RNBRemote.h (struct Breakpoint): New structure for ref counting 
 | |
|         breakpoints in Z and z packets.
 | |
|         * RNBRemote.cpp (RNBRemote::SendPacket): Use new LOG_RNB_PACKETS
 | |
|         defined when logging actual packet content.
 | |
|         (RNBRemote::HandleAsyncPacket): Ditto.
 | |
|         (RNBRemote::HandleReceivedPacket): Ditto.
 | |
|         (RNBRemote::HandlePacket_z): Ref count the setting and removing
 | |
|         of breakpoints with the Z and z packets using new struct
 | |
|         RNBRemote::Breakpoint.
 | |
|         * RNBDefs.h (LOG_RNB_PACKETS): New define for logging the sending
 | |
|         and receiving of packets data.
 | |
|         * DNB.cpp (DNBPrintf): Check for NULL file handle.
 | |
|         * DNBBreakpoint.cpp (DNBBreakpoint::Dump): Ditto.
 | |
|         (DNBBreakpointList::Dump): Ditto.
 | |
|         * DNBDefs.h (LOG_EVENTS): New define for logging PThreadEvent.
 | |
|         * DNBLog.cpp (g_debug_opt): Relocated outside of #if that turns off
 | |
|         logging completely to allow option parsing code that uses it to
 | |
|         still compile.
 | |
|         (g_verbose): Ditto.
 | |
|         * DNBLog.h (DNBLogToASL): Added prototype for when logging is 
 | |
|         disabled via preprocessor macro.
 | |
|         (DNBLogToFile): Ditto.
 | |
|         * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Check for NULL
 | |
|         file handle.
 | |
|         * MachException.cpp (MachException::ThreadMessage::DumpStopReason): Ditto.
 | |
|         (MachException::ThreadMessage::Dump): Ditto.
 | |
|         * MachProcess.cpp (MachProcess::CreateBreakpoint): Improved logging.
 | |
|         (MachProcess::DisableBreakpoint): Verify the original opcode gets 
 | |
|         restored, improved logging and added unconditional logging for when
 | |
|         things go wrong.
 | |
|         (MachProcess::EnableBreakpoint): Verify the breakpoint opcode gets 
 | |
|         written, improved logging and added unconditional logging for when
 | |
|         things go wrong.
 | |
|         * MachThread.cpp (MachThread::Dump): Check for NULL file handle.
 | |
|         * MachVMMemory.cpp (MachVMMemory::WriteRegion): Flush caches in inferior
 | |
|         after writing to inferior memory.
 | |
|         * PThreadEvent.cpp: Changed all logging calls to key off of LOG_EVENTS
 | |
|         instead of LOG_VERBOSE.
 | |
|         MachDYLD.cpp (MachDYLD::Dump): Check for NULL file handle.
 | |
|         (MachDYLD::DYLIBInfo::Dump): Ditto.
 | |
|         ProfileObjectiveC.cpp (ProfileObjectiveC::DumpStats): Ditto.
 | |
|         
 | |
| 2008-02-09  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (set_logging): Log to ASL unconditionally when
 | |
| 	processing a QSetLogging packet.
 | |
| 
 | |
| 2008-02-06  Greg Clayton  <gclayton@apple.com>
 | |
|         
 | |
|         * test-remotenub.cpp (main): Dup stdout and stderr to /dev/NULL
 | |
|         when we use lockdown.
 | |
| 
 | |
| 2008-02-06  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBSocket.cpp (RNBSocket::Disconnect): Removed unused var ERR.
 | |
| 	* RNBRemote.cpp(RNBRemote::HandlePacket_Q): Removed unused var PID.
 | |
| 	* DNBError.cpp (DNBError::LogThreadedIfError): Removed unused var
 | |
| 	ERR_MSG.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Removed unused 
 | |
| 	variable EXECUTABLE_LENGTH.
 | |
| 	(main): Removed unused variable ARG_IDX.
 | |
| 
 | |
| 2008-02-06  Chris Marcellino (cmarcellino@apple.com) and Myke Olson (molson@apple.com)
 | |
| 
 | |
| 	* MachProcess.cpp (SBForkChildForPTraceDebugging): Bring up to date with
 | |
| 	current SpringBoardServices.framework types and imports.
 | |
| 
 | |
| 2008-02-05  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (set_logging): Remove the mode=file and filename=
 | |
| 	options to the QSetLogging packet.  We're only going to support logging
 | |
| 	to ASL for now.  Logging to a file can still be accomplished by the
 | |
| 	-l command line argument.
 | |
| 
 | |
| 2008-02-02  Christopher Friesen  (cfriesen@apple.com)
 | |
| 
 | |
|         * Added libXcodeDebugerSupport.dylib target
 | |
|         * XCDebuggerIntrospection.[hc]: Support for Xcode's debugger introspection.
 | |
|         
 | |
| 2008-02-01  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* DNBLog.cpp (DNBLogCloseLogFile): New function to close a logfile
 | |
| 	at exit.
 | |
| 	* DNBLog.h: Prototype.
 | |
| 	* test-remotenub.cpp (main): Close the log file before exiting.
 | |
| 
 | |
| 2008-02-01  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (set_logging): Recognize the "filename=" argument
 | |
| 	to the QSetLogging directive.
 | |
| 	* DNBLog.cpp (DNBLogGetLogMask): New fun.c
 | |
| 	* DNBLog.h: Prototype.
 | |
| 
 | |
| 2008-01-31  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* DNBLog.cpp: Add ASL logging as a run-time selectable option.
 | |
| 	(DNBLogToASL, DNBLogToFile): Functions to switch between logging to
 | |
| 	a file and logging via ASL.
 | |
| 	* DNBLog.h: Prototypes.
 | |
| 	* RNBRemote.cpp (set_logging): Recognize the "mode=" field to enable
 | |
| 	asl logging.  Skip unrecognized keys.
 | |
| 
 | |
| 2008-01-31  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* DNB.cpp (sigchld_handler): Better logging when we get a 
 | |
| 	SIGCHILD and we are watching for process related logging events.
 | |
| 	* test-remotenub.cpp (RNBRunLoopInferiorExecuting): Only reset 
 | |
| 	events when we still have event bits set.
 | |
| 
 | |
| 2008-01-29  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Add set_logging_mode.
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize
 | |
| 	QSetLogging.
 | |
| 
 | |
| 2008-01-29  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (set_logging): New function to parse the QSetLogging
 | |
| 	packet.
 | |
| 	(RNBRemote::HandlePacket_Q): Call it.
 | |
| 
 | |
| 2008-01-28  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: Minimal packet size is 1024 in our gdb now.
 | |
| 	* RNBRemote.cpp: Add the stop_pc value in big-endian order to the
 | |
| 	T response packet to make it a little easier to follow where gdb
 | |
| 	is stepping.
 | |
| 
 | |
| 2008-01-28  Greg Clayton  <gclayton@apple.com>
 | |
| 
 | |
| 	* RNBContext.h: Removed m_pid_state from RNBContext class so that
 | |
| 	it couldn't get out of sync with the actual process and its accessors
 | |
| 	SetProcessState() and GetProcessState().
 | |
| 	* RNBContext.cpp (RNBContext::ProcessStateRunning): Always return the
 | |
| 	current state of the process instead of a cached value.
 | |
| 	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Remove call to 
 | |
|         deprecated RNBContext::SetProcessState().
 | |
| 	(HandleProcessStateChange): Ditto.
 | |
| 
 | |
| 2008-01-24  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with
 | |
| 	"qSymbol" (no trailing "s") and return the empty string.
 | |
| 
 | |
| 2008-01-24  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with
 | |
| 	"qSymbols" and return the empty string.
 | |
| 
 | |
| 2008-01-24  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* DNBError.h (DNBError::DumpIfError): Removed prototype.
 | |
| 	* DNBError.cpp (DNBError::DumpIfError): Removed function.
 | |
| 	(DNBError::LogThreadedIfError): Output error as hex.
 | |
| 	* MachException.cpp (MachException::Message::Receive): Don't use
 | |
| 	DNBError::DumpIfError, now use DNBError::LogThreadedIfError.
 | |
| 	* MachProcess.cpp (MachProcess::StartExceptionThread): Ditto.
 | |
|  	(MachProcess::Suspend): Ditto.
 | |
| 	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
 | |
| 	* MachVMMemory.cpp (MachVMMemory::Read): Cleaned up logging
 | |
| 	calls.
 | |
| 	(MachVMMemory::Write): Ditto.
 | |
| 	(MachVMMemory::WriteRegion): Added logging.
 | |
| 	* RNBContenxt.cpp (display_thread_info): Removed function.
 | |
| 	* RNBRemote.cpp (RNBRemote::GetPacket): Commented out stderr
 | |
| 	messages to avoid SpringBoard from killing us.
 | |
| 	(RNBRemote::HandlePacket_p): Ditto.
 | |
| 	(RNBRemote::HandlePacket_P): Ditto.
 | |
| 	(RNBRemote::HandlePacket_c): Ditto.
 | |
| 	(RNBRemote::HandlePacket_A): Removed code that was already
 | |
| 	* RNBSocket.cpp (RNBSocket::Listen): Commented out stdout
 | |
| 	messages to avoid SpringBoard from killing us.
 | |
| 	(RNBSocket::ConnectToService): Ditto.
 | |
| 
 | |
| 2008-01-24  Jim Ingham  <jingham@apple.com>
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Reply "" to qSymbols
 | |
| 	and qOffsets.
 | |
| 	
 | |
| 2008-01-23  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.h: m_noack_mode to RNBRemote class.
 | |
| 	* RNBRemote.cpp: Change #ifdef NO_ACKS code blocks
 | |
| 	to use m_noack_mode instance variable.
 | |
| 	(RNBRemote::HandlePacket_Q): New function to handle
 | |
| 	QStartNoAckMode packet and set m_noack_mode appropriately.
 | |
| 	* test-remotenub.cpp: Remove NO_ACKS ifdefs.
 | |
| 
 | |
| 2008-01-22  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize 
 | |
| 	QStartNoAckMode as an unsupported remote protocol request.
 | |
| 	* RNBRemote.h: Add start_noack_mode enum entry.
 | |
| 
 | |
| 2008-01-22  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* DNBLog.h: Removed C++ namespace for DNBLog (changed all DNBLog::
 | |
| 	to DNBLog) so C99 var arg macros can be used to completely disable 
 | |
| 	all logging and any functions that may be called when making the
 | |
| 	variable arguments.
 | |
| 	* DNBLog.cpp: Ditto.
 | |
| 	* DNB.cpp: Ditto.
 | |
| 	* DNBBreakpoint.cpp: Ditto.
 | |
| 	* DNBError.cpp: Ditto.
 | |
| 	* MacOSX/MachDYLD.cpp: Ditto.
 | |
| 	* MacOSX/MachException.cpp: Ditto.
 | |
| 	* MacOSX/MachProcess.cpp: Ditto.
 | |
| 	* MacOSX/MachThread.cpp: Ditto.
 | |
| 	* MacOSX/MachThreadList.cpp: Ditto.
 | |
| 	* MacOSX/MachVMMemory.cpp: Ditto.
 | |
| 	* MacOSX/MachVMRegion.cpp: Ditto.
 | |
| 	* MacOSX/arm/DNBArchImpl.cpp: Ditto.
 | |
| 	* MacOSX/ppc/DNBArchImpl.cpp: Ditto.
 | |
| 	* PThreadEvent.cpp: Ditto.
 | |
| 	* RNBContext.cpp: Ditto.
 | |
| 	* RNBRemote.cpp: Ditto.
 | |
| 	* RNBSocket.cpp: Ditto.
 | |
| 	* test-remotenub.cpp: Ditto.
 | |
| 
 | |
| 2008-01-21  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* test-remotenub.cpp: Add NO_SPRINGBOARD for turning off SpringBoard
 | |
| 	dependency ala NO_ACKS.
 | |
| 
 | |
| 2008-01-18  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBSocket.h (RNBSocket::RNBSocket): Take either a port # or
 | |
| 	an already-opened socket, with a boolean to indicate which it is.
 | |
| 	* RNBRemote.cpp (RNBRemote::RNBRemote): Ditto.
 | |
| 	* RNBRemote.h: Prototype update.
 | |
| 	* test-remotenub.cpp: Include lockdown.h.  Take --lockdown command
 | |
| 	line arg, get the socket from liblockdown.dylib instead of opening
 | |
| 	our own socket if it is specified.  --lockdown indicates that 
 | |
| 	the program name/args will be provided via remote protocol instead
 | |
| 	of on the command line.
 | |
| 
 | |
| 2008-01-17  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp: Add NO_ACKS #ifdefs around code that computes
 | |
| 	the checksums and sends/expects the gdb remote protocol ACK packets.
 | |
| 	If NO_ACKS is defined, debugserver will not send or expect acks.
 | |
| 	* test-remotenub.cpp (main): Print a different version string
 | |
| 	if NO_ACKS is defined.
 | |
| 
 | |
| 2008-01-16  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* PThreadEvent.cpp: Added this pointer to all logging calls.
 | |
| 
 | |
| 2008-01-16  Greg Clayton  (gclayton@apple.com)
 | |
| 
 | |
| 	* RNBSocket.cpp (RNBSocket::Connect()): Use TCP so we can try the
 | |
| 	TCP_NODELAY socket option.
 | |
| 	(RNBSocket::SetSocketOption()): New function.
 | |
| 	* RNBSocket.h (RNBSocket::SetSocketOption()): New class function.
 | |
| 
 | |
| 2008-01-14  Jason Molenda  (jmolenda@apple.com)
 | |
| 
 | |
| 	* RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): When printing
 | |
| 	registers, skip over gdb regs which don't map to DNB regs.
 | |
| 
 | |
| 2008-01-14  Jim Ingham  <jingham@apple.com>
 | |
| 
 | |
|     * ChangeLog - created.
 | |
|     * RBNContext.h: Added m_arg_vec and accessors.
 | |
|     * RNBContext.cpp (SetProcessID): New function.
 | |
|     * RBNRemote.h: Added packet type to HandlePacket & HandleAsyncPacket
 | |
|     * RNBRemote.cpp (HandlePacket, HandleAsyncPacket): Return type.
 | |
|     (HandlePacket_A): Fix a few bugs.
 | |
|     (HandlePacket_H): Return OK if target is not yet running.
 | |
|     (HandlePacket_q): Return PID of 0 if target is not yet running.
 | |
|     * testremotenub.cpp (RNBRunLoopGetArgsFromRemote): Implement.
 | |
|     (RNBRunLoopLaunchInferior): Fetch arguments from context.
 | |
|     (main) Store arguments in context, call RNBRunLoopGetArgsFromRemote
 | |
|     if appropriate.
 |