130fdc8d8SChris Lattner2010-01-29  Greg Clayton  <[email protected]>
230fdc8d8SChris Lattner
330fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::PrepareForAttach): No longer use the
430fdc8d8SChris Lattner	SBSLaunchApplication macro from the SpringBoard.framework, use the actual
530fdc8d8SChris Lattner	function name SBSLaunchApplicationForDebugging.
630fdc8d8SChris Lattner	(MachProcess::CleanupAfterAttach): Ditto.
730fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
830fdc8d8SChris Lattner	(debugserver-entitlements.plist): Added the "seatbelt-profiles" entitlement
930fdc8d8SChris Lattner	so debugserver can be sandboxed.
1030fdc8d8SChris Lattner
1130fdc8d8SChris Lattner2009-07-06  Greg Clayton  <[email protected]>
1230fdc8d8SChris Lattner
1330fdc8d8SChris Lattner	* MachTask.cpp (MachTask::GetDYLDAllImageInfosAddress): Hack around bad
1430fdc8d8SChris Lattner	kernel code that renamed the first member of the TASK_DYLD_INFO without
1530fdc8d8SChris Lattner	any way to detect it has changed.
1630fdc8d8SChris Lattner
1730fdc8d8SChris Lattner2009-06-29  Greg Clayton  <[email protected]>
1830fdc8d8SChris Lattner
1930fdc8d8SChris Lattner	* DNB.cpp (GetAllInfosMatchingName): Correctly truncate process name string
2030fdc8d8SChris Lattner	to MAXCOMLEN when searching kinfo_proc structs for process matches by name.
2130fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::PrepareForAttach): Added logging when
2230fdc8d8SChris Lattner	attaching to a program by name.
2330fdc8d8SChris Lattner
2430fdc8d8SChris Lattner2009-06-25  Greg Clayton  <[email protected]>
2530fdc8d8SChris Lattner
2630fdc8d8SChris Lattner	* DNB.cpp (DNBProcessLaunch): Added a stat on the incoming path that we are
2730fdc8d8SChris Lattner	about to launch to make sure the file exists. If the file doesn't, then an
2830fdc8d8SChris Lattner	appropriate error string is returned. Also if we fail to get the task for
2930fdc8d8SChris Lattner	our process ID, we return an error string right away instead of letting the
3030fdc8d8SChris Lattner	debug session go for a little bit and then later failing after a few more
3130fdc8d8SChris Lattner	packets.
3230fdc8d8SChris Lattner
3330fdc8d8SChris Lattner2009-04-07  Jim Ingham  <[email protected]>
3430fdc8d8SChris Lattner
3530fdc8d8SChris Lattner    * RNBRemote.h: Add vAttachWait
3630fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Add vattachwait.
3730fdc8d8SChris Lattner	(RNBRemoteShouldCancelCallback): New function.
3830fdc8d8SChris Lattner	(RNBRemote::HandlePacket_v): Handle vattachwait.
3930fdc8d8SChris Lattner	* RNBSocket.cpp (RNBSocket::Read): Mark the connection as closed when the
4030fdc8d8SChris Lattner	port goes away.
4130fdc8d8SChris Lattner	* DNB.cpp (DNBProcessAttachByName): New function.
4230fdc8d8SChris Lattner	(DNBProcessAttach): Make this handle catching the attach when done and
4330fdc8d8SChris Lattner	dealing with timeout & return conditions.
4430fdc8d8SChris Lattner	(GetAllInfos): New function.
4530fdc8d8SChris Lattner	(GetAlInfosMatchingName): New function.
4630fdc8d8SChris Lattner	(DNBProcessAttachWait): New function.
4730fdc8d8SChris Lattner	DNB.h: Declare DNBProcessAttachByName, DNBProcessAttachWait, change
4830fdc8d8SChris Lattner	signature of DNBProcessAttach.
4930fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::PrepareForAttach): New function.
5030fdc8d8SChris Lattner	(MachProcess::CheckForProcess): New function.
5130fdc8d8SChris Lattner	(MachProcess::CleanupAfterAttach): New function.
5230fdc8d8SChris Lattner	(CopyBundleIDForPath): New function.
5330fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Convert to using
5430fdc8d8SChris Lattner	CopyBundleIDForPath.
5530fdc8d8SChris Lattner	* MachProcess.h: Declare PrepareForAttach, CleanupAfterAttach and
5630fdc8d8SChris Lattner	CheckForProcess.
5730fdc8d8SChris Lattner    * DNBTimer.h (TimeOfDayLaterThan): New function.
5830fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopGetStartModeFromRemote): Rename from
5930fdc8d8SChris Lattner	RNBRunLoopGetArgsFromRemote, and handle vattachwait.
6030fdc8d8SChris Lattner	(RNBRunLoopLaunchAttaching): Code was moved from here into DNBProcessAttach.
6130fdc8d8SChris Lattner	(StartListening): New function.
6230fdc8d8SChris Lattner	(GetAllProcessInfos, GetAllProcessInfosMatchingName): Moved to
6330fdc8d8SChris Lattner	DNBProcess.cpp.
6430fdc8d8SChris Lattner	(main): Handle attach waitfor, and make debugserver with only a host and
6530fdc8d8SChris Lattner	port wait on commands from gdb.
6630fdc8d8SChris Lattner
6730fdc8d8SChris Lattner2009-04-03  Greg Clayton  <[email protected]>
6830fdc8d8SChris Lattner
6930fdc8d8SChris Lattner	* RNBRemote.h (PacketEnum): Added enum for qShlibInfoAddr.
7030fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable) Added the qShlibInfoAddr
7130fdc8d8SChris Lattner	packet definition to m_packets.
7230fdc8d8SChris Lattner	(RNBRemote::GetPacket): Log when we run into an unimplemented packet.
7330fdc8d8SChris Lattner	(RNBRemote::HandleReceivedPacket): Only log the packet when logging
7430fdc8d8SChris Lattner	LOG_RNB_REMOTE.
7530fdc8d8SChris Lattner	(RNBRemote::HandlePacket_q): Add support for the new qShlibInfoAddr packet.
7630fdc8d8SChris Lattner	* DNB.h (DNBProcessGetSharedLibraryInfoAddress): New prototype.
7730fdc8d8SChris Lattner	* DNB.cpp (DNBProcessGetSharedLibraryInfoAddress): New function.
7830fdc8d8SChris Lattner	* MachTask.h (MachProcess::GetDYLDAllImageInfosAddress): New prototype.
7930fdc8d8SChris Lattner	* MachTask.cpp (MachProcess::GetDYLDAllImageInfosAddress): New function.
8030fdc8d8SChris Lattner
8130fdc8d8SChris Lattner2009-04-01  Greg Clayton  <[email protected]>
8230fdc8d8SChris Lattner
8330fdc8d8SChris Lattner	* test-remotenub.cpp (main): Display the detailed error message if any when
8430fdc8d8SChris Lattner	attaching fails.
8530fdc8d8SChris Lattner
8630fdc8d8SChris Lattner2009-03-25  Greg Clayton  <[email protected]>
8730fdc8d8SChris Lattner
8830fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Cleaned up logging and
8930fdc8d8SChris Lattner	removed time deltas form the messages.
9030fdc8d8SChris Lattner	(RNBRunLoopLaunchAttaching): Ditto.
9130fdc8d8SChris Lattner	(RNBRunLoopLaunchInferior): Ditto and also use new DNBProcessLaunch that
9230fdc8d8SChris Lattner	takes an error string pointer.
9330fdc8d8SChris Lattner	* RNBContext.h (class RNBContext): Removed the m_timer member.
9430fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::StartProcessStatusThread): Cleaned up logging
9530fdc8d8SChris Lattner	and removed time deltas form the messages.
9630fdc8d8SChris Lattner	(RNBContext::ThreadFunctionProcessStatus): Ditto.
9730fdc8d8SChris Lattner	* RNBSocket.h (class RNBSocket): Removed unused m_last_errno member and
9830fdc8d8SChris Lattner	accessor functions.
9930fdc8d8SChris Lattner	* RNBSocket.cpp (RNBSocket::Listen): Cleaned up logging  and
10030fdc8d8SChris Lattner	removed time deltas form the messages.
10130fdc8d8SChris Lattner	(RNBSocket::ConnectToService): Ditto.
10230fdc8d8SChris Lattner	(RNBSocket::Read): Ditto.
10330fdc8d8SChris Lattner	(RNBSocket::Write): Ditto.
10430fdc8d8SChris Lattner	(RNBSocket::SaveErrno): Removed.
10530fdc8d8SChris Lattner	(RNBSocket::ClosePort): Don't call RNBSocket::SaveErrno().
10630fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::RNBRemote): Cleaned up logging  and
10730fdc8d8SChris Lattner	removed time deltas form the messages.
10830fdc8d8SChris Lattner	(RNBRemote::~RNBRemote): Ditto.
10930fdc8d8SChris Lattner	(RNBRemote::SendPacket): Ditto.
11030fdc8d8SChris Lattner	(RNBRemote::GetPacketPayload): Ditto.
11130fdc8d8SChris Lattner	(RNBRemote::GetPacket): Ditto): Ditto.
11230fdc8d8SChris Lattner	(RNBRemote::HandleAsyncPacket): Ditto.
11330fdc8d8SChris Lattner	(RNBRemote::HandleReceivedPacket): Ditto.
11430fdc8d8SChris Lattner	(RNBRemote::CommDataReceived): Ditto.
11530fdc8d8SChris Lattner	* DNB.cpp (DNBProcessLaunch): Changed to take a eror string pointer with
116e9264b74SKazuaki Ishizaki	size for more descriptive error reporting (instead of a uint32_t pointer).
11730fdc8d8SChris Lattner	* DNB.h (DNBProcessLaunch): Ditto.
11830fdc8d8SChris Lattner	* DNBError.cpp (DNBError::AsString): Now returns NULL if there is no error.
11930fdc8d8SChris Lattner	* DNBError.h (DNBError::SetErrorString): New accessor to allow custom error
12030fdc8d8SChris Lattner	strings.
12130fdc8d8SChris Lattner	* arm/DNBArchImpl.cpp (DNBArchMachARM::GetGPRState): Improved logging.
12230fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::SBForkChildForPTraceDebugging): Improved
12330fdc8d8SChris Lattner	error messages when a file doesn't exist, or when unable to extract the
12430fdc8d8SChris Lattner	CFBundleIdentifier.
12530fdc8d8SChris Lattner	* PThreadEvent.cpp (class PThreadEvent): Commented out all logging calls.
12630fdc8d8SChris Lattner
12730fdc8d8SChris Lattner2009-03-07  Greg Clayton  <[email protected]>
12830fdc8d8SChris Lattner
12930fdc8d8SChris Lattner	* test-remotenub.cpp (GetAllProcessInfosMatchingName): New function that
13030fdc8d8SChris Lattner	returns matching kinfo_proc structs given a process name.
13130fdc8d8SChris Lattner	(main): Enhanced the --attach option to be able to take a PROCNAME or
13230fdc8d8SChris Lattner	a PID. Changed the --waitfor=PROCNAME option to ignore any existing
13330fdc8d8SChris Lattner	processes with PROCNAME so we only catch new process invocations.
13430fdc8d8SChris Lattner
13530fdc8d8SChris Lattner2009-03-07  Greg Clayton  <[email protected]>
13630fdc8d8SChris Lattner
13730fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_p): Use the correct get current
13830fdc8d8SChris Lattner	thread function call so we get the correct thread registers.
13930fdc8d8SChris Lattner
14030fdc8d8SChris Lattner2009-03-03  Greg Clayton  <[email protected]>
14130fdc8d8SChris Lattner
14230fdc8d8SChris Lattner	* test-remotenub.cpp (g_isatty): New global that gets set to non-zero if
14330fdc8d8SChris Lattner	STDOUT is a TTY in the beginning of main.
14430fdc8d8SChris Lattner	(RNBLogSTDOUT): New macro that logs to STDOUT if g_isatty is non-zero, else
14530fdc8d8SChris Lattner	it logs to asl.
14630fdc8d8SChris Lattner	(RNBLogSTDERR): New macro that logs to STDERR if g_isatty is non-zero, else
14730fdc8d8SChris Lattner	it logs to asl.
14830fdc8d8SChris Lattner	(RNBRunLoopGetArgsFromRemote): Use new RNBLogSTDOUT/RNBLogSTDERR macros.
14930fdc8d8SChris Lattner	(GetAllProcessInfos): Get all process info structs for everything on the
15030fdc8d8SChris Lattner	system.
15130fdc8d8SChris Lattner	(main): Implemented new --waitfor=NAME option to allow waiting for a process
15230fdc8d8SChris Lattner	to run by polling the system processes. The new --waitfor-interval=N option
15330fdc8d8SChris Lattner	allows fine control over the polling interval where N is the number of mirco
15430fdc8d8SChris Lattner	seconds (usec) to wait between polls (defaults to 1000). The new
15530fdc8d8SChris Lattner	--waitfor-duration=N allows	a timeout in seconds to be specified when
15630fdc8d8SChris Lattner	waiting for a process (defaults	to infinite).
15730fdc8d8SChris Lattner
15830fdc8d8SChris Lattner2009-03-02  Greg Clayton  <[email protected]>
15930fdc8d8SChris Lattner
16030fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup):
16130fdc8d8SChris Lattner	Take care of a case where no instructions execute in a Thumb IT block and
16230fdc8d8SChris Lattner	the last of which is a branch.
16330fdc8d8SChris Lattner
16430fdc8d8SChris Lattner2009-02-10  Greg Clayton  <[email protected]>
16530fdc8d8SChris Lattner
16630fdc8d8SChris Lattner	* RNBRemote.h (PacketEnum): Added 'detach' enumeration.
16730fdc8d8SChris Lattner	(RNBRemote::HandlePacket_D): New member function prototype.
16830fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Added detach support.
16930fdc8d8SChris Lattner	(RNBRemote::HandlePacket_D): New function for detach support.
17030fdc8d8SChris Lattner
17130fdc8d8SChris Lattner2009-02-10  Greg Clayton  <[email protected]>
17230fdc8d8SChris Lattner
17330fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_UNIMPLEMENTED): Log this
17430fdc8d8SChris Lattner	packet with the packet that is unimplemented.
17530fdc8d8SChris Lattner	(RNBRemote::GetPacket): Call RNBRemote::HandlePacket_UNIMPLEMENTED()
17630fdc8d8SChris Lattner	when we don't recognize a packet.
17730fdc8d8SChris Lattner	(RNBRemote::HandleReceivedPacket): Don't reply to packets we don't
178503cd422SGreg Clayton	recognize with unimplemented in this function as that should have
17930fdc8d8SChris Lattner	already been done for us in RNBRemote::GetPacket().
18030fdc8d8SChris Lattner
18130fdc8d8SChris Lattner2009-02-10  Greg Clayton  <[email protected]>
18230fdc8d8SChris Lattner
18330fdc8d8SChris Lattner	* RNBRemote.h (PacketEnum): Added query_step_packet_supported.
18430fdc8d8SChris Lattner	* RNBRemot.cpp (RNBRemote::CreatePacketTable): Added new
18530fdc8d8SChris Lattner	qStepPacketSupported packet.
18630fdc8d8SChris Lattner	(RNBRemote::HandlePacket_q): Added support for the new
18730fdc8d8SChris Lattner	"qStepPacketSupported" packet.
18830fdc8d8SChris Lattner	(RNBRemote::HandlePacket_G): Some cleanup when reading registers
18930fdc8d8SChris Lattner	to avoid spurious console logging.
19030fdc8d8SChris Lattner
19130fdc8d8SChris Lattner2009-01-30  Greg Clayton  <[email protected]>
19230fdc8d8SChris Lattner
19330fdc8d8SChris Lattner	* debugserver-entitlements.plist: Changed the entitlement
19430fdc8d8SChris Lattner	"run-invalid-allow" to "run-unsigned-code".
19530fdc8d8SChris Lattner
19630fdc8d8SChris Lattner2009-01-23  Greg Clayton  <[email protected]>
19730fdc8d8SChris Lattner
19830fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup):
19930fdc8d8SChris Lattner	Merged Yusuf's changes to make software single stepping work.
20030fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Call new
20130fdc8d8SChris Lattner	DNBResolveExecutablePath function to resolve executable paths.
20230fdc8d8SChris Lattner	* DNB.h (DNBResolveExecutablePath): New function prototype.
20330fdc8d8SChris Lattner	* DNB.cpp (DNBResolveExecutablePath): New function that will resolve
20430fdc8d8SChris Lattner	relative paths and also executable paths for executables that aren't relative
20530fdc8d8SChris Lattner	but yet are in the shell PATH environment variable.
20630fdc8d8SChris Lattner
20730fdc8d8SChris Lattner2009-01-22  Greg Clayton  <[email protected]>
20830fdc8d8SChris Lattner
20930fdc8d8SChris Lattner	* DNBArchImpl.h (class DBNArchMachARM): Renamed member variable
21030fdc8d8SChris Lattner	m_chained_hw_single_step_addr to m_hw_single_chained_step_addr. Added
21130fdc8d8SChris Lattner	new member variables: m_sw_single_step_itblock_break_id, m_last_decode_pc,
21230fdc8d8SChris Lattner	and m_sw_single_step_itblock_break_count. Renamed m_thumbStaticData to
21330fdc8d8SChris Lattner	m_last_decode_thumb, and renamed m_decodedInstruction to m_last_decode_arm.
21430fdc8d8SChris Lattner	(DBNArchMachARM::DecodeITBlockInstructions): New prototype.
21530fdc8d8SChris Lattner	(DBNArchMachARM::DecodeInstructionUsingDisassembler): New prototype.
21630fdc8d8SChris Lattner    (DBNArchMachARM::BreakpointHit): New prototype.
21730fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Disable any of the
21830fdc8d8SChris Lattner	many software single step breakpoints if any are set.
21930fdc8d8SChris Lattner	(DNBArchMachARM::StepNotComplete): Changed renamed member accesses.
22030fdc8d8SChris Lattner	(DNBArchMachARM::DecodeITBlockInstructions): New function for software
22130fdc8d8SChris Lattner	single stepping through Thumb IT blocks.
22230fdc8d8SChris Lattner	(DNBArchMachARM::EnableHardwareSingleStep): Cleaned up logging.
22330fdc8d8SChris Lattner	(DNBArchMachARM::ComputeNextPC): Ditto.
22430fdc8d8SChris Lattner	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): Now
22530fdc8d8SChris Lattner	properly handles Thumb IT software single stepping.
22630fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto.
22730fdc8d8SChris Lattner	(DNBArchMachARM::DecodeInstructionUsingDisassembler): New function.
22830fdc8d8SChris Lattner	(DNBArchMachARM::BreakpointHit): New breakpoint callback function.
22930fdc8d8SChris Lattner
23030fdc8d8SChris Lattner2009-01-21  Greg Clayton  <[email protected]>
23130fdc8d8SChris Lattner
23230fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::PrivateResume): Set the process state before
23330fdc8d8SChris Lattner	we actually resume so we are sure to get the events in the correct order.
23430fdc8d8SChris Lattner
23530fdc8d8SChris Lattner2009-01-16  Greg Clayton  <[email protected]>
23630fdc8d8SChris Lattner
23730fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Include only
23830fdc8d8SChris Lattner	registers which are to be expedited in the T packets.
23930fdc8d8SChris Lattner	(RNBRemote::HandlePacket_p): Enable for all targets.
24030fdc8d8SChris Lattner	(struct register_map_entry): Added an expedite member so we know which
24130fdc8d8SChris Lattner	registers need to be sent up to the host with each stop reply packet.
24230fdc8d8SChris Lattner	(register_map): Updated each array members' expedite member with an
24330fdc8d8SChris Lattner	appropriate value.
24430fdc8d8SChris Lattner
24530fdc8d8SChris Lattner2009-01-16  Greg Clayton  <[email protected]>
24630fdc8d8SChris Lattner
24730fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_s): Enabled the step command ("s"
24830fdc8d8SChris Lattner	packet) for ARM now that libdebugnub.dylib can do both hardware and software
24930fdc8d8SChris Lattner	single stepping.
25030fdc8d8SChris Lattner
25130fdc8d8SChris Lattner2009-01-13  Greg Clayton  <[email protected]>
25230fdc8d8SChris Lattner
25330fdc8d8SChris Lattner	*DNBArchImpl.cpp (bit): New function.
25430fdc8d8SChris Lattner	(bits): New function.
25530fdc8d8SChris Lattner	(DNBArchMachARM::ConditionPassed): Use new "bit" function.
25630fdc8d8SChris Lattner	(DNBArchMachARM::ComputeNextPC): Use new "bit" function, remove inline
25730fdc8d8SChris Lattner	assembly for "RSC" instruction so this compiles for armv7 (which defaults
25830fdc8d8SChris Lattner	to thumb)
25930fdc8d8SChris Lattner	(DNBArchMachARM::NumSupportedHardwareBreakpoints): Use new "bits" function.
26030fdc8d8SChris Lattner	(DNBArchMachARM::NumSupportedHardwareWatchpoints): Use new "bits" function.
26130fdc8d8SChris Lattner
26230fdc8d8SChris Lattner2009-01-12  Greg Clayton  <[email protected]>
26330fdc8d8SChris Lattner
26430fdc8d8SChris Lattner	* DNBArch.h (DNBArchProtocol::NumSupportedHardwareBreakpoints()): Removed
26530fdc8d8SChris Lattner	the "const" qualifier to allow arches to auto detect how many hardware
26630fdc8d8SChris Lattner	breakpoints they have.
26730fdc8d8SChris Lattner	(DNBArchProtocol::NumSupportedHardwareWatchpoints()): Removed the "const"
26830fdc8d8SChris Lattner	qualifier to allow arches to auto detect how many hardware watchpoints they
26930fdc8d8SChris Lattner	have.
27030fdc8d8SChris Lattner	* DNBArchImpl.h (DNBArchMachARM::NumSupportedHardwareBreakpoints()): Auto
271e9264b74SKazuaki Ishizaki	detect how many BRP pairs are available and disable for armv7 for the time
27230fdc8d8SChris Lattner	being (rdar://problem/6372672).
27330fdc8d8SChris Lattner	(DNBArchMachARM::NumSupportedHardwareWatchpoints()): Auto detect how many
274e9264b74SKazuaki Ishizaki	WRP pairs are available and disable for armv7 for the time being
27530fdc8d8SChris Lattner	(rdar://problem/6372672).
27630fdc8d8SChris Lattner
27730fdc8d8SChris Lattner2009-01-09  Greg Clayton  <[email protected]>
27830fdc8d8SChris Lattner
27930fdc8d8SChris Lattner	* test-remotenub.cpp (main): Filled in short argument versions for
28030fdc8d8SChris Lattner	--applist (-t) and --lockdown (-k) options.
28130fdc8d8SChris Lattner	* DNBArchImpl.h (DNBArchMachARM::ConditionPassed): New protected
28230fdc8d8SChris Lattner	member function.
28330fdc8d8SChris Lattner	(DNBArchMachARM::ComputeNextPC): New protected member function.
28430fdc8d8SChris Lattner	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New
28530fdc8d8SChris Lattner	protected member function.
28630fdc8d8SChris Lattner	(DNBArchMachARM::m_thumbStaticData): New protected member variable.
28730fdc8d8SChris Lattner	(DNBArchMachARM::m_decodedInstruction): New protected member variable.
28830fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::ThreadDidStop): Added extra code that
28930fdc8d8SChris Lattner	will log and exit when we are verifying software single stepping (a
29030fdc8d8SChris Lattner	compile time option).
29130fdc8d8SChris Lattner	(DNBArchMachARM::ConditionPassed): New function.
29230fdc8d8SChris Lattner	(DNBArchMachARM::ComputeNextPC): New function.
29330fdc8d8SChris Lattner	(DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup): New
29430fdc8d8SChris Lattner	function.
29530fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Added the guts of the
29630fdc8d8SChris Lattner	software single stepping.
29730fdc8d8SChris Lattner	(DNBArchMachARM::NumSupportedHardwareBreakpoints): Prepared for adding
29830fdc8d8SChris Lattner	auto detection code.
29930fdc8d8SChris Lattner	(DNBArchMachARM::NumSupportedHardwareWatchpoints): Prepared for adding
30030fdc8d8SChris Lattner	auto detection code.
30130fdc8d8SChris Lattner
30230fdc8d8SChris Lattner2008-12-11  Greg Clayton  <[email protected]>
30330fdc8d8SChris Lattner
30430fdc8d8SChris Lattner	* DNB.h (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents.
30530fdc8d8SChris Lattner	(DNBProcessSetEvents): Removed (deprecated).
30630fdc8d8SChris Lattner	(DNBProcessGetWaitForResetMask): Removed (unused).
30730fdc8d8SChris Lattner	(DNBProcessSetWaitForResetMask): Removed (unused).
30830fdc8d8SChris Lattner	(DNBProcessInterruptEvents): New function prototype.
30930fdc8d8SChris Lattner	* DNB.cpp (DNBProcessWaitForEvent): Renamed to DNBProcessWaitForEvents.
31030fdc8d8SChris Lattner	(DNBProcessSetEvents): Removed (deprecated).
31130fdc8d8SChris Lattner	(DNBProcessGetWaitForResetMask): Removed (unused).
31230fdc8d8SChris Lattner	(DNBProcessSetWaitForResetMask): Removed (unused).
31330fdc8d8SChris Lattner	(DNBProcessInterruptEvents): New function that can be used to
31430fdc8d8SChris Lattner	asynchronously interrupt infinite wait for events calls.
31530fdc8d8SChris Lattner	RNBRemote.cpp (RNBRemote::HandlePacket_v): Call DNBProcessWaitForEvents.
31630fdc8d8SChris Lattner	RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Ditto.
31730fdc8d8SChris Lattner	test-remotenub.cpp (RNBRunLoopLaunchInferior): Ditto.
31830fdc8d8SChris Lattner	(RNBRunLoopLaunchAttaching): Ditto.
31930fdc8d8SChris Lattner
32030fdc8d8SChris Lattner2008-12-11  Greg Clayton  <[email protected]>
32130fdc8d8SChris Lattner
32230fdc8d8SChris Lattner	* DNB.cpp (GetProcessMap): Use new PTHREAD_MUTEX_LOCKER macro to ease
32330fdc8d8SChris Lattner	debugging of deadlocks.
32430fdc8d8SChris Lattner	(DNBProcessLaunch): Improved logging.
32530fdc8d8SChris Lattner	(DNBProcessMemoryRead): Call MachProcess::ReadMemory so breakpoint
32630fdc8d8SChris Lattner	opcodes can be removed from memory.
32730fdc8d8SChris Lattner	(DNBProcessMemoryWrite): Call MachProcess::WriteMemory so that we work
32830fdc8d8SChris Lattner	around enabled software breakpoint traps.
32930fdc8d8SChris Lattner	* DNBLog.cpp (GetLogThreadedMutex): New function.
33030fdc8d8SChris Lattner	(_DNBLogThreaded): Use new PTHREAD_MUTEX_LOCKER macro to ease
33130fdc8d8SChris Lattner	debugging of deadlocks.
33230fdc8d8SChris Lattner	(_DNBLogThreadedIf): Ditto.
33330fdc8d8SChris Lattner	* DNBBreakpoint.h (DNBBreakpoint::IntersectsRange): New function.
33430fdc8d8SChris Lattner	* DNBBreakpoint.cpp	(DNBBreakpointList::FindIDByAddress): Improved
33530fdc8d8SChris Lattner	logging.
33630fdc8d8SChris Lattner	* MacOSX/MachThread.cpp (MachThread::MachThread): Improved logging.
33730fdc8d8SChris Lattner	(MachThread::~MachThread): Ditto.
33830fdc8d8SChris Lattner	(MachThread::Suspend): Ditto.
33930fdc8d8SChris Lattner	(MachThread::Resume): Ditto.
34030fdc8d8SChris Lattner	(MachThread::RestoreSuspendCount): Ditto.
34130fdc8d8SChris Lattner	(MachThread::GetState): Use new PTHREAD_MUTEX_LOCKER macro to ease
34230fdc8d8SChris Lattner	debugging of deadlocks.
34330fdc8d8SChris Lattner	(MachThread::SetState): Ditto.
34430fdc8d8SChris Lattner	* MacOSX/MachVMMemory.cpp (MachVMMemory::Read): Improved logging.
34530fdc8d8SChris Lattner	(MachVMMemory::Write): Ditto.
34630fdc8d8SChris Lattner	(MachVMMemory::WriteRegion): Ditto.
34730fdc8d8SChris Lattner	* MacOSX/MachProcess.cpp (MachProcess::GetState): Use new
34830fdc8d8SChris Lattner	PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks.
34930fdc8d8SChris Lattner	(MachProcess::SetState): Ditto.
35030fdc8d8SChris Lattner	(MachProcess::Clear): Ditto.
35130fdc8d8SChris Lattner	(MachProcess::PrivateResume): Ditto.
35230fdc8d8SChris Lattner	(MachProcess::ReplyToAllExceptions): Ditto.
35330fdc8d8SChris Lattner	(MachProcess::ExceptionMessageReceived): Ditto.
35430fdc8d8SChris Lattner	(MachProcess::AppendSTDOUT): Ditto.
35530fdc8d8SChris Lattner	(MachProcess::GetAvailableSTDOUT): Ditto.
35630fdc8d8SChris Lattner	(MachProcess::ThreadFunctionSTDIO): Renamed from to
35730fdc8d8SChris Lattner	MachProcess::STDIOThread.
35830fdc8d8SChris Lattner	(MachProcess::StartSTDIOThread): Improved logging.
35930fdc8d8SChris Lattner	(MachProcess::CreateBreakpoint): Ditto.
36030fdc8d8SChris Lattner	(MachProcess::CreateWatchpoint): Ditto.
36130fdc8d8SChris Lattner	(MachProcess::DisableAllBreakpoints): Ditto.
36230fdc8d8SChris Lattner	(MachProcess::DisableBreakpoint): Ditto.
36330fdc8d8SChris Lattner	(MachProcess::DisableWatchpoint): Ditto.
36430fdc8d8SChris Lattner	(MachProcess::EnableBreakpoint): Ditto.
36530fdc8d8SChris Lattner	(MachProcess::EnableWatchpoint): Ditto.
36630fdc8d8SChris Lattner	(MachProcess::LaunchForDebug): Ditto.
36730fdc8d8SChris Lattner	(MachProcess::PosixSpawnChildForPTraceDebugging): Ditto.
36830fdc8d8SChris Lattner	(MachProcess::Detach): Reset the running event bit after resuming prior
36930fdc8d8SChris Lattner	to issuing the SIGSTOP to avoid a pause.
37030fdc8d8SChris Lattner	(MachProcess::RemoveTrapsFromBuffer): New function that removes
37130fdc8d8SChris Lattner	breakpoint traps from a memory buffer.
37230fdc8d8SChris Lattner	(MachProcess::ReadMemory): Read memory from the task, then removes any
37330fdc8d8SChris Lattner	breakpoint traps prior to returning the buffer.
37430fdc8d8SChris Lattner	(MachProcess::WriteMemory): Write memory and any needed data to the
37530fdc8d8SChris Lattner	breakpoint saved opcodes for any software breakpoint traps that are
37630fdc8d8SChris Lattner	enabled.
37730fdc8d8SChris Lattner	* MacOSX/MachProcess.h (MachProcess::ThreadFunctionException): Removed.
37830fdc8d8SChris Lattner	(MachProcess::ThreadFunctionSTDIO): Renamed to MachProcess::STDIOThread().
37930fdc8d8SChris Lattner	(MachProcess::RemoveTrapsFromBuffer): New function.
38030fdc8d8SChris Lattner	* MacOSX/MachVMRegion.cpp (MachVMRegion::SetProtections): Improved
38130fdc8d8SChris Lattner	logging.
38230fdc8d8SChris Lattner	(MachVMRegion::RestoreProtections): Ditto.
38330fdc8d8SChris Lattner	(MachVMRegion::GetRegionForAddress): Ditto.
38430fdc8d8SChris Lattner	* MacOSX/MachException.cpp (catch_mach_exception_raise_state): Improved
38530fdc8d8SChris Lattner	logging.
38630fdc8d8SChris Lattner	(catch_mach_exception_raise_state_identity): Ditto.
38730fdc8d8SChris Lattner	(catch_mach_exception_raise): Ditto.
38830fdc8d8SChris Lattner	(MachException::Message::Dump): Ditto.
38930fdc8d8SChris Lattner	(MachException::Data::GetStopInfo): Ditto.
39030fdc8d8SChris Lattner	(MachException::Message::Receive): Ditto.
39130fdc8d8SChris Lattner	(MachException::Message::Reply): Ditto.
39230fdc8d8SChris Lattner	(MachException::Data::Dump): Ditto.
39330fdc8d8SChris Lattner	(MachException::PortInfo::Save): Ditto.
39430fdc8d8SChris Lattner	(MachException::PortInfo::Restore): Ditto.
39530fdc8d8SChris Lattner	* MacOSX/MachTask.cpp (MachTask::Suspend): Improved logging.
39630fdc8d8SChris Lattner	(MachTask::Resume): Ditto.
39730fdc8d8SChris Lattner	(MachTask::ReadMemory): Ditto.
39830fdc8d8SChris Lattner	(MachTask::WriteMemory): Ditto.
39930fdc8d8SChris Lattner	(MachTask::TaskPortForProcessID): Ditto.
40030fdc8d8SChris Lattner	(MachTask::BasicInfo): Ditto.
40130fdc8d8SChris Lattner	(MachTask::StartExceptionThread): Ditto.
40230fdc8d8SChris Lattner	(MachTask::ShutDownExcecptionThread): Ditto and use pthread_cancel to
40330fdc8d8SChris Lattner	interrupt the exception thread.
40430fdc8d8SChris Lattner	(MachTask::ExceptionThread): Ditto and revert back to infinite timeout
40530fdc8d8SChris Lattner	as pthread_cancel will break us out of infinite mach_msg receive calls.
40630fdc8d8SChris Lattner	* MacOSX/MachThreadList.cpp	(MachThreadList::UpdateThreadList): Improved
40730fdc8d8SChris Lattner	logging.
40830fdc8d8SChris Lattner	(MachThreadList::CurrentThread): Use new PTHREAD_MUTEX_LOCKER macro to
40930fdc8d8SChris Lattner	ease debugging of deadlocks.
41030fdc8d8SChris Lattner	* DNBTimer.h (DNBTimer::DNBTimer): Initialize the mutex with a recursive
41130fdc8d8SChris Lattner	pthread.
41230fdc8d8SChris Lattner	(DNBTimer::Reset): Use new PTHREAD_MUTEX_LOCKER macro to ease debugging
41330fdc8d8SChris Lattner	of deadlocks.
41430fdc8d8SChris Lattner	(DNBTimer::TotalMicroSeconds): Ditto.
41530fdc8d8SChris Lattner	(DNBTimer::GetTime): Ditto.
41630fdc8d8SChris Lattner	(DNBTimer::ElapsedMicroSeconds): Ditto.
41730fdc8d8SChris Lattner	(DNBTimer::GetTimeOfDay): New class function.
41830fdc8d8SChris Lattner	* DNBError.cpp (DNBError::LogThreaded): Improved logging.
41930fdc8d8SChris Lattner	* test-dbgnub.cpp
42030fdc8d8SChris Lattner	* PThreadMutex.h: Added the ability to debug deadlocks by defining
42130fdc8d8SChris Lattner	DEBUG_PTHREAD_MUTEX_DEADLOCKS.
42230fdc8d8SChris Lattner	* FunctionProfiler.cpp
42330fdc8d8SChris Lattner	* PThreadEvent.cpp (PThreadEvent::NewEventBit): Use new
42430fdc8d8SChris Lattner	PTHREAD_MUTEX_LOCKER macro to ease debugging of deadlocks.
42530fdc8d8SChris Lattner	(PThreadEvent::FreeEventBits): Ditto.
42630fdc8d8SChris Lattner	(PThreadEvent::GetEventBits): Ditto.
42730fdc8d8SChris Lattner	(PThreadEvent::ReplaceEventBits): Ditto.
42830fdc8d8SChris Lattner	(PThreadEvent::SetEvents): Ditto.
42930fdc8d8SChris Lattner	(PThreadEvent::ResetEvents): Ditto.
43030fdc8d8SChris Lattner	(PThreadEvent::WaitForSetEvents): Ditto.
43130fdc8d8SChris Lattner	(PThreadEvent::WaitForEventsToReset): Ditto.
43230fdc8d8SChris Lattner
43330fdc8d8SChris Lattner2008-12-05  Greg Clayton  <[email protected]>
43430fdc8d8SChris Lattner
43530fdc8d8SChris Lattner	* DNBDefs.h (LOG_TASK): New log bit.
436d93c4a33SBruce Mitchener	* DNB.cpp (DNBProcessIsAlive): User newly abstracted MachTask class.
43730fdc8d8SChris Lattner	(DNBProcessMemoryRead): Ditto.
43830fdc8d8SChris Lattner	(DNBProcessMemoryWrite): Ditto.
43930fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Ditto.
44030fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints) Ditto.
44130fdc8d8SChris Lattner	* MachException.cpp (MachException::Message::Receive): Cleaned up logging
44230fdc8d8SChris Lattner	so it doesn't always log timeout errors.
44330fdc8d8SChris Lattner	(MachException::Message::Reply): Use abstracted MachTask class for any
44430fdc8d8SChris Lattner	task related queries.
44530fdc8d8SChris Lattner	(MachException::PortInfo::Save): Cleaned up logging.
44630fdc8d8SChris Lattner	(MachException::PortInfo::Restore): Cleaned up logging and now return an
44730fdc8d8SChris Lattner	error instead of the number of restored port infos.
44830fdc8d8SChris Lattner	* MachProcess.cpp (class MachProcess): Abstracted out all of the task_t
449d93c4a33SBruce Mitchener	related stuff (suspend, resume, exception ports, exception thread, and
45030fdc8d8SChris Lattner	more) into a new class MachTask.
45130fdc8d8SChris Lattner	(MachProcess::Task): Now returns a reference to a MachTask class.
45230fdc8d8SChris Lattner	(MachProcess::Clear): Uses new abstracted MachTask class.
45330fdc8d8SChris Lattner	(MachProcess::Detach): Ditto.
45430fdc8d8SChris Lattner	(MachProcess::PrivateResume): Ditto.
45530fdc8d8SChris Lattner	(MachProcess::DisableBreakpoint): Ditto.
45630fdc8d8SChris Lattner	(MachProcess::ExceptionMessageReceived): Ditto.
45730fdc8d8SChris Lattner	(MachProcess::ExceptionMessageBundleComplete): Ditto.
45830fdc8d8SChris Lattner	(MachProcess::AttachForDebug): Ditto.
45930fdc8d8SChris Lattner	(MachProcess::LaunchForDebug): Ditto.
46030fdc8d8SChris Lattner	(MachProcess::SBLaunchForDebug): Ditto.
46130fdc8d8SChris Lattner	(MachProcess::TaskIsValid): Removed (replaced by similar functionality
46230fdc8d8SChris Lattner	in the new MachTask class).
46330fdc8d8SChris Lattner	(MachProcess::ExceptionPort): Ditto.
46430fdc8d8SChris Lattner	(MachProcess::ExceptionPortIsValid): Ditto.
46530fdc8d8SChris Lattner	(MachProcess::StartExceptionThread): Ditto.
46630fdc8d8SChris Lattner	(MachProcess::Suspend): Ditto.
46730fdc8d8SChris Lattner	(MachProcess::TaskResume): Ditto.
46830fdc8d8SChris Lattner	(MachProcess::TaskBasicInfo): Ditto.
46930fdc8d8SChris Lattner	(MachProcess::TaskBasicInfo): Ditto.
47030fdc8d8SChris Lattner	(MachProcess::ReadMemory): Ditto.
47130fdc8d8SChris Lattner	(MachProcess::WriteMemory): Ditto.
47230fdc8d8SChris Lattner	(MachProcess::ThreadFunctionException): Ditto.
47330fdc8d8SChris Lattner
47430fdc8d8SChris Lattner2008-12-04  Greg Clayton  <[email protected]>
47530fdc8d8SChris Lattner
47630fdc8d8SChris Lattner	* DNB.h (DNBProcessSetEvents): New API function prototype.
47730fdc8d8SChris Lattner	* DNB.cpp (DNBProcessSetEvents): New API function.
47830fdc8d8SChris Lattner	(DNBProcessHalt): Send our process a SIGINT instead of suspending
47930fdc8d8SChris Lattner	the task.
48030fdc8d8SChris Lattner	* DNBDefs.h (NUB_STATE_IS_STOPPED): Removed up duplicate entry in macro.
48130fdc8d8SChris Lattner	(eEventPrcoessAsyncInterrupt): New prcoess event bit that allows async
48230fdc8d8SChris Lattner	interrupting of infinite DNBProcessWaitForEvent() function calls.
48330fdc8d8SChris Lattner	* MachException.cpp (MachException::Message::Receive): Improved logging.
48430fdc8d8SChris Lattner	(MachException::Message::Reply): Improved logging.
48530fdc8d8SChris Lattner	* MachProcess.h (MachProcess::TaskBasicInfo): New member and static
48630fdc8d8SChris Lattner	functions.
48730fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::TaskIsValid): Use new TaskBasicInfo()
48830fdc8d8SChris Lattner	member function.
48930fdc8d8SChris Lattner	(MachProcess::Resume): Removed the detach parameter from the PrivateResume()
49030fdc8d8SChris Lattner	function call.
49130fdc8d8SChris Lattner	(MachProcess::Kill): Added a absolute timeout pointer to allow callers to
49230fdc8d8SChris Lattner	wait for the signal to be received if the timeout is non-NULL.
49330fdc8d8SChris Lattner	(MachProcess::TaskBasicInfo): New member and static function.
49430fdc8d8SChris Lattner	(MachProcess::TaskResume): New function that resumes the task by making sure
49530fdc8d8SChris Lattner	the suspend count is correctly ref counted.
49630fdc8d8SChris Lattner	(MachProcess::Detach): When detaching from a process make sure it is
49730fdc8d8SChris Lattner	stopped (SIGSTOP) first, then we can successfully detach. The exception
49830fdc8d8SChris Lattner	thread now also properly exits.
49930fdc8d8SChris Lattner	(MachProcess::PrivateResume): Call new TaskResume function, and removed the
50030fdc8d8SChris Lattner	detach functionality.
50130fdc8d8SChris Lattner	(MachProcess::DisableBreakpoint): Only notify the thread list that a
50230fdc8d8SChris Lattner	breakpoint has changed if the breakpoint is going to be removed.
50330fdc8d8SChris Lattner	(MachProcess::ThreadFunctionException): Added a permanent 1 second timeout
50430fdc8d8SChris Lattner	for each call to mach_msg() so we can exit the thread in the event that
50530fdc8d8SChris Lattner	we detach from a process/task.
50630fdc8d8SChris Lattner	* test-debugnub (main): Modified to show an example of how to detach using
50730fdc8d8SChris Lattner	a signal_handler to asynchronously receive a SIGINT and properly interrupt
50830fdc8d8SChris Lattner	and detach from a running process.
50930fdc8d8SChris Lattner
51030fdc8d8SChris Lattner2008-11-26  Greg Clayton  <[email protected]>
51130fdc8d8SChris Lattner
51230fdc8d8SChris Lattner	* DNBDefs.h (LOG_STEP): New logging define.
51330fdc8d8SChris Lattner	* DNBError.cpp (DNBError::LogThreaded): If there is no error, then
51430fdc8d8SChris Lattner	log with "success: " as a prefix instead of "error: ".
51530fdc8d8SChris Lattner	* arm/DBNArchImpl.cpp (DNBArchMachARM::EnableHardwareSingleStep): Log using
51630fdc8d8SChris Lattner	new LOG_STEP instead of LOG_BREAKPOINTS.
51730fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): Ditto.
518d93c4a33SBruce Mitchener	* MachException.cpp (MachException::Message::Dump): Log exception header
51930fdc8d8SChris Lattner	and reply header on two separate lines.
52030fdc8d8SChris Lattner	* MachProcess.cpp (IsSBProcess): Check for NULL CFArrayRef returned from
52130fdc8d8SChris Lattner	SBSCopyApplicationDisplayIdentifiers for SkankPhone.
52230fdc8d8SChris Lattner	(MachProcess::Suspend): Check if process state is not running instead of
52330fdc8d8SChris Lattner	having to receive an event after a timeout if one is given.
52430fdc8d8SChris Lattner	(MachProcess::Detach): Deallocate the exception port when detaching and
52530fdc8d8SChris Lattner	restore the inferior task exception ports prior to clearing and detaching.
52630fdc8d8SChris Lattner	(MachProcess::PrivateResume): Grab the task's basic info and make sure we
52730fdc8d8SChris Lattner	get the resume the correct number of times.
52830fdc8d8SChris Lattner	(MachProcess::DisableBreakpoint): Removed unused variable opcode_restored
52930fdc8d8SChris Lattner	and make sure the breakpoint is enabled before we start warning that
53030fdc8d8SChris Lattner	our opcode wasn't there.
53130fdc8d8SChris Lattner	* ppc/DBNArchImpl.cpp (DNBArchMachPPC::EnableHardwareSingleStep): Log
53230fdc8d8SChris Lattner	using LOG_STEP instead of LOAD_BREAKPOINTS.
53330fdc8d8SChris Lattner	* RNBServices.cpp (IsSBProcess): Check for NULL CFArrayRef returned from
53430fdc8d8SChris Lattner	SBSCopyApplicationDisplayIdentifiers for SkankPhone.
53530fdc8d8SChris Lattner
53630fdc8d8SChris Lattner2008-11-26  Greg Clayton  <[email protected]>
53730fdc8d8SChris Lattner
53830fdc8d8SChris Lattner	* MachProcess.h (MachProcess::Suspend): Now takes an optional absolute
53930fdc8d8SChris Lattner	timeout that, if non-NULL, will case the function to return after the
54030fdc8d8SChris Lattner	process has been suspended and is in a stopped state. If the timeout is
54130fdc8d8SChris Lattner	NULL, then no waiting will occur.
54230fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::Suspend): Ditto.
54330fdc8d8SChris Lattner	(MachProcess::Detach): Now replies to all exceptions, un-suspends all
54430fdc8d8SChris Lattner	threads and resumes the task.
54530fdc8d8SChris Lattner	(MachProcess::ReplyToAllExceptions): New function.
54630fdc8d8SChris Lattner	(MachProcess::PrivateResume): Now takes an additional parameter named
54730fdc8d8SChris Lattner	detach that will do the right thing when detaching from a process.
54830fdc8d8SChris Lattner	* DNBArchImpl.h (DNBArchMachI386::ThreadWillResume): Returns void.
54930fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachI386::ThreadWillResume): Returns void.
55030fdc8d8SChris Lattner	* RNBServices.cpp (ListApplications): #ifdef-ed for ARM only as it
55130fdc8d8SChris Lattner	currently uses SpringBoard.
55230fdc8d8SChris Lattner	(IsSBProcess): Ditto.
55330fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): #ifdef-ed around
55430fdc8d8SChris Lattner	ARM parts so it compiles for i386.
55530fdc8d8SChris Lattner	(main): Ditto.
55630fdc8d8SChris Lattner
55730fdc8d8SChris Lattner2008-11-24  Greg Clayton  <[email protected]>
55830fdc8d8SChris Lattner
55930fdc8d8SChris Lattner	* DNBArchProtocol.h (DNBArchProtocol::ThreadWillResume): Now returns void.
56030fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::ThreadWillResume): Returns void and
56130fdc8d8SChris Lattner	has hollowed out support for software single step.
56230fdc8d8SChris Lattner	(DNBArchMachARM::ThreadDidStop): Has a debug mode that uses hardware single
56330fdc8d8SChris Lattner	step to verify software single step that can be enabled by defining
56430fdc8d8SChris Lattner	DNB_ARCH_MACH_ARM_DEBUG_SW_STEP.
56530fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New function.
56630fdc8d8SChris Lattner	* DNBArchImpl.h (DNBArchMachARM::ThreadWillResume): Returns void.
56730fdc8d8SChris Lattner	(DNBArchMachARM::SetSingleStepSoftwareBreakpoints): New prototype.
56830fdc8d8SChris Lattner	(DNBArchMachARM::m_sw_single_step_next_pc): New member variable.
56930fdc8d8SChris Lattner	(DNBArchMachARM::m_sw_single_step_break_id): New member variable.
57030fdc8d8SChris Lattner	* MachThread.cpp (MachThread::ThreadWillResume): Now returns void.
57130fdc8d8SChris Lattner	* MachThread.h (MachThread::ThreadWillResume): Now returns void.
57230fdc8d8SChris Lattner
57330fdc8d8SChris Lattner2008-11-19  Greg Clayton  <[email protected]>
57430fdc8d8SChris Lattner
57530fdc8d8SChris Lattner	* DNBError.h (FlavorType): Added SpringBoard error type for arm builds.
57630fdc8d8SChris Lattner	* DNBError.cpp (DNBError::AsString): Now returns SpringBoard error strings
57730fdc8d8SChris Lattner	if the error type is SpringBoard.
57830fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Set the error into
57930fdc8d8SChris Lattner	RNBContext as either a POSIX error or a SpringBoard error.
58030fdc8d8SChris Lattner	* RNBContext.h (m_launch_status): Changed this member to be a DNBError
58130fdc8d8SChris Lattner	instead of a uint32_t.
58230fdc8d8SChris Lattner	(RNBContext::LaunchStatus): Now returns a reference to the DNBError object
58330fdc8d8SChris Lattner	in m_launch_status.
58430fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::LaunchStatusAsString): Let DNBError handle
58530fdc8d8SChris Lattner	any error string descriptions, including SpringBoard errors.
58630fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Use new error class in
58730fdc8d8SChris Lattner	RNBContext.
58830fdc8d8SChris Lattner	(RNBRemote::HandlePacket_C): Return without an erroneous error when resuming
58930fdc8d8SChris Lattner	a process with a signal.
59030fdc8d8SChris Lattner	* DNBArch.h (DNBArchProtocol::StepNotComplete): New protocol function with
59130fdc8d8SChris Lattner	default return value.
59230fdc8d8SChris Lattner	* DNBArchImpl.cpp (DNBArchMachARM::StepNotComplete): New function.
59330fdc8d8SChris Lattner	(DNBArchMachARM::EnableHardwareSingleStep): Handle hardware single stepping
59430fdc8d8SChris Lattner	over 32 bit thumb instructions better so we always do a true instruction
59530fdc8d8SChris Lattner	level single step.
59630fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::ExceptionMessageBundleComplete): Now resumes
59730fdc8d8SChris Lattner	if single stepping wasn't able to complete in a single run.
59830fdc8d8SChris Lattner	* MachThread.cpp (MachThread::ShouldStop): Fills in new step_more parameter
59930fdc8d8SChris Lattner	if stepping is not complete.
60030fdc8d8SChris Lattner	* MachThreadList.cpp (MachThreadList::ShouldStop): Pass step_more parameter
60130fdc8d8SChris Lattner	to each MachThread::ShouldStop call.
60230fdc8d8SChris Lattner
60330fdc8d8SChris Lattner2008-11-13  Greg Clayton  <[email protected]>
60430fdc8d8SChris Lattner
60530fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::PosixSpawnChildForPTraceDebugging): Don't
60630fdc8d8SChris Lattner	call posix_spawnattr_setbinpref_np when launching with posix_spawn on ARM
60730fdc8d8SChris Lattner	targets as it currently selects the incorrect slice due to multiple slices
60830fdc8d8SChris Lattner	that contain the same cputype, yet they all have differing cpusubtypes.
60930fdc8d8SChris Lattner
61030fdc8d8SChris Lattner2008-11-04  Greg Clayton  <[email protected]>
61130fdc8d8SChris Lattner
61230fdc8d8SChris Lattner	* RNBRemote.h (GetContinueThread): Don't return the current thread when
61330fdc8d8SChris Lattner	the continue thread is zero or -1.
61430fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_c): Resume the process if we
61530fdc8d8SChris Lattner	have no continue thread set.
61630fdc8d8SChris Lattner	(RNBRemote::HandlePacket_s): Ditto.
61730fdc8d8SChris Lattner	(RNBRemote::HandlePacket_C): Ditto unless a continue address is specified
61830fdc8d8SChris Lattner	in which case we will only succeed if we have one thread when the continue
61930fdc8d8SChris Lattner	with signal and address doesn't have a continue thread specified.
62030fdc8d8SChris Lattner	(RNBRemote::HandlePacket_S): Ditto.
62130fdc8d8SChris Lattner	* DNB.cpp (DNBProcessResumeWithSignal): New function.
62230fdc8d8SChris Lattner	(DNBProcessResume): Added better logging.
62330fdc8d8SChris Lattner	(DNBProcessHalt): Ditto.
62430fdc8d8SChris Lattner	(DNBThreadResume): Ditto.
62530fdc8d8SChris Lattner	(DNBThreadResumeWithSignal): Ditto.
62630fdc8d8SChris Lattner	* DNB.h (DNBProcessResumeWithSignal): New prototype.
62730fdc8d8SChris Lattner	* DNBError.cpp (DNBError::LogThreaded): New function.
62830fdc8d8SChris Lattner	* DNBError.h (DNBError::LogThreaded): New prototype.
62930fdc8d8SChris Lattner	* DNBLog.cpp (_DNBLogThreaded): Added sequence ID for threaded logs.
63030fdc8d8SChris Lattner	(_DNBLogThreadedIf): Ditto.
63130fdc8d8SChris Lattner	* MachException.cpp (MachException::Data::GetStopInfo): Use new SoftSignal()
63230fdc8d8SChris Lattner	accessor.
63330fdc8d8SChris Lattner	(MachException::Data::DumpStopReason): Ditto.
63430fdc8d8SChris Lattner	(MachException::Message::Reply): Added better logging and log using the
63530fdc8d8SChris Lattner	soft signal if our task matches that in the exception.
63630fdc8d8SChris Lattner	(MachException::Data::Dump): Added better logging.
63730fdc8d8SChris Lattner	* MachException.h (IsSoftSignal): Removed.
63830fdc8d8SChris Lattner	(SoftSignal): New function that returns the soft signal in the exception
63930fdc8d8SChris Lattner	data if there is one, or zero otherwise.
64030fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::Suspend): Improved logging.
64130fdc8d8SChris Lattner	(MachProcess::Resume): Ditto.
64230fdc8d8SChris Lattner	(MachProcess::PrivateResume): Handle the case where the process is told
64330fdc8d8SChris Lattner	to resume with a signal by matching the signal up to the thread that had
64430fdc8d8SChris Lattner	the soft signal if no thread id is specified.
64530fdc8d8SChris Lattner	* MachThread.cpp (MachThread::Suspend): Improved logging.
64630fdc8d8SChris Lattner	(MachThread::Resume): Improved logging.
64730fdc8d8SChris Lattner	(MachThread::RestoreSuspendCount): Improved logging.
64830fdc8d8SChris Lattner	(MachThread::Resume): Improved logging.
64930fdc8d8SChris Lattner	(MachThread::Dump): Improved logging.
65030fdc8d8SChris Lattner	* MachThreadList.cpp (MachThreadList::Dump): Improved logging.
65130fdc8d8SChris Lattner
65230fdc8d8SChris Lattner2008-10-22  Greg Clayton  <[email protected]>
65330fdc8d8SChris Lattner
65430fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopMode): Added a new enum value
65530fdc8d8SChris Lattner	eRNBRunLoopModeInferiorAttaching.
65630fdc8d8SChris Lattner	(g_long_options): Added "--attach=PID" for attaching to existing processes
65730fdc8d8SChris Lattner	and "--launch=(auto|posix|fork|springboard)" options.
65830fdc8d8SChris Lattner	(RNBRunLoopLaunchInferior): Now launches process with new
65930fdc8d8SChris Lattner	nub_launch_flavor_t enum that can be overridden with the --launch option.
66030fdc8d8SChris Lattner	(RNBRunLoopLaunchAttaching): New function for attaching to existing
66130fdc8d8SChris Lattner	processes.
66230fdc8d8SChris Lattner	(main): Added command line option support for the "--attach" and "--launch"
66330fdc8d8SChris Lattner	options and added attach to pid support and better logging.
66430fdc8d8SChris Lattner	* DNB.cpp/h: (DNBProcessLaunch): Added nub_launch_flavor_t and error
66530fdc8d8SChris Lattner	parameter for more precise control when launching processes.
66630fdc8d8SChris Lattner	(DNBProcessSBLaunch): Removed function as launching with SpringBoard can
66730fdc8d8SChris Lattner	now be done using DNBProcessLaunch with launch_flavor being set to
66830fdc8d8SChris Lattner	eLaunchTypeSpringBoard (arm only).
66930fdc8d8SChris Lattner	(DNBProcessSBAttach): Removed function (SpringBoard processes are now auto
67030fdc8d8SChris Lattner	detected in the MachProcess::AttachForDebug function on ARM).
67130fdc8d8SChris Lattner	* DNBDefs.h (NUB_GENERIC_ERROR): New generic error definition.
67230fdc8d8SChris Lattner	(nub_launch_flavor_t): New enumeration used for control over process
67330fdc8d8SChris Lattner	launching.
67430fdc8d8SChris Lattner	* MachProcess.cpp (IsSBProcess): New function.
67530fdc8d8SChris Lattner	(MachProcess::AttachForDebug): Removed flags parameter that was being used
67630fdc8d8SChris Lattner	for SpringBoard flags and we now detect if a process belongs to SpringBoard
67730fdc8d8SChris Lattner	by calling IsSBProcess.
67830fdc8d8SChris Lattner	(MachProcess::LaunchForDebug): Now has launch parameter that tells it how
67930fdc8d8SChris Lattner	to launch the inferior process and there is also an error code that gets
68030fdc8d8SChris Lattner	returned. This function can now launch using fork + exec, posix_spawn,
68130fdc8d8SChris Lattner	or SpringBoard on ARM targets.
68230fdc8d8SChris Lattner	(MachProcess::SBLaunchForDebug): Now uses DNBError reference instead of
68330fdc8d8SChris Lattner	uint32_t pointer for the error code.
68430fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
68530fdc8d8SChris Lattner
68630fdc8d8SChris Lattner2008-10-22  Greg Clayton  <[email protected]>
68730fdc8d8SChris Lattner
68830fdc8d8SChris Lattner	* MacOSX/arm/DNBArchImpl.cpp (DNBArchMachARM::GetRegisterValue): Set
68930fdc8d8SChris Lattner	register value to a uint32 value instead of a float64 value for s0 -
69030fdc8d8SChris Lattner	s31.
69130fdc8d8SChris Lattner
69230fdc8d8SChris Lattner2008-10-17  Greg Clayton  <[email protected]>
69330fdc8d8SChris Lattner
69430fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Don't listen for
695e9264b74SKazuaki Ishizaki	the qLaunchSuccess if we aren't doing a lockdown connection.
69630fdc8d8SChris Lattner
69730fdc8d8SChris Lattner2008-10-13  Greg Clayton  <[email protected]>
69830fdc8d8SChris Lattner
69930fdc8d8SChris Lattner	* RNBRemote.h (class RNBRemote): Added m_watchpoints member.
70030fdc8d8SChris Lattner	* DNB.cpp (DNBBreakpointSet): Added boolean hardware parameter for
70130fdc8d8SChris Lattner	requesting that a hardware breakpoint be set.
70230fdc8d8SChris Lattner	(DNBWatchpointSet): New function.
70330fdc8d8SChris Lattner	(DNBWatchpointClear): New function.
70430fdc8d8SChris Lattner	(DNBWatchpointGetHitCount): New function.
70530fdc8d8SChris Lattner	(DNBWatchpointGetIgnoreCount): New function.
70630fdc8d8SChris Lattner	(DNBWatchpointSetIgnoreCount): New function.
70730fdc8d8SChris Lattner	(DNBWatchpointSetCallback): New function.
70830fdc8d8SChris Lattner	(DNBWatchpointPrint): New function.
70930fdc8d8SChris Lattner	* DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Modified to emit
71030fdc8d8SChris Lattner	a single DNBLog() call so there aren't multiple newlines when logging
71130fdc8d8SChris Lattner	to ASL.
71230fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::ThreadFunctionProcessStatus): Use new
71330fdc8d8SChris Lattner	process state changed events.
71430fdc8d8SChris Lattner	* DNBBreakpoint.h (class DNBBreakpoint): Removed m_state member and
71530fdc8d8SChris Lattner	added m_tid, m_enabled, m_hw_preferred, m_is_watchpoint, m_watch_read,
71630fdc8d8SChris Lattner	m_watch_write, and m_hw_index.
71730fdc8d8SChris Lattner	(DNBBreakpoint::ThreadID()): New accessor.
71830fdc8d8SChris Lattner	(DNBBreakpoint::IsEnabled()): New accessor.
71930fdc8d8SChris Lattner	(DNBBreakpoint::SetEnabled()): New accessor.
72030fdc8d8SChris Lattner	(DNBBreakpoint::IsWatchpoint()): New accessor.
72130fdc8d8SChris Lattner	(DNBBreakpoint::IsBreakpoint()): New accessor.
72230fdc8d8SChris Lattner	(DNBBreakpoint::SetIsWatchpoint()): New accessor.
72330fdc8d8SChris Lattner	(DNBBreakpoint::WatchpointRead()): New accessor.
72430fdc8d8SChris Lattner	(DNBBreakpoint::WatchpointWrite()): New accessor.
72530fdc8d8SChris Lattner	(DNBBreakpoint::HardwarePreferred()): New accessor.
72630fdc8d8SChris Lattner	(DNBBreakpoint::IsHardware()): New accessor.
72730fdc8d8SChris Lattner	(DNBBreakpoint::GetHardwareIndex()): New accessor.
72830fdc8d8SChris Lattner	(DNBBreakpoint::SetHardwareIndex()): New accessor.
72930fdc8d8SChris Lattner	(DNBBreakpoint::ThreadID()): New accessor.
73030fdc8d8SChris Lattner	(DNBBreakpoint::GetState()): Removed accessor.
73130fdc8d8SChris Lattner	(DNBBreakpoint::SetState()): Removed accessor.
73230fdc8d8SChris Lattner	(DNBBreakpoint::AddBreakpoint()): Renamed to Add().
73330fdc8d8SChris Lattner	(DNBBreakpoint::RemoveBreakpoint()): Renamed to Remove().
73430fdc8d8SChris Lattner	(DNBBreakpoint::FindBreakIDForAddress()): Renamed to FindIDByAddress().
73530fdc8d8SChris Lattner	(DNBBreakpoint::ShouldStopAtBreakpoint()): Renamed to ShouldStop().
73630fdc8d8SChris Lattner	(DNBBreakpoint::SetBreakpointCallback()): Renamed to SetCallback().
73730fdc8d8SChris Lattner	(DNBBreakpoint::FindBreakpointWithAddress()): Renamed to
73830fdc8d8SChris Lattner	FindByAddress().
73930fdc8d8SChris Lattner	(DNBBreakpoint::FindBreakpointWithBreakID()): Renamed to FindByID().
74030fdc8d8SChris Lattner	(DNBBreakpoint::GetBreakpointAtIndex()): Renamed to GetByIndex().
74130fdc8d8SChris Lattner	* FunctionProfiler.h: New header for subclass of DNBRuntimeAction.
74230fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_v): Use new process state
74330fdc8d8SChris Lattner	changed events.
74430fdc8d8SChris Lattner	(RNBRemote::HandlePacket_z): Implement the hardware breakpoint and
74530fdc8d8SChris Lattner	watchpoint commands z1, Z1, z2, Z2, z3 and Z3
74630fdc8d8SChris Lattner	* PThreadEvent.h (PThreadEvent::GetEventBits): Made member function
74730fdc8d8SChris Lattner	const.
74830fdc8d8SChris Lattner	(PThreadEvent::WaitForSetEvents): Ditto.
74930fdc8d8SChris Lattner	(PThreadEvent::WaitForEventsToReset): Ditto.
75030fdc8d8SChris Lattner	(PThreadEvent::WaitForResetAck): Ditto.
75130fdc8d8SChris Lattner	(PThreadEvent::m_mutex): Made class member mutable.
75230fdc8d8SChris Lattner	(PThreadEvent::m_set_condition): Made class member mutable.
75330fdc8d8SChris Lattner	(PThreadEvent::m_reset_condition): New mutable class member.
75430fdc8d8SChris Lattner	* ProfileObjectiveC.cpp
75530fdc8d8SChris Lattner	* DNBArch.h (DNBArch::NotifyException): Now has default implementation
75630fdc8d8SChris Lattner	that returns false.
75730fdc8d8SChris Lattner	(DNBArch::NumSupportedHardwareBreakpoints): New virtual member
75830fdc8d8SChris Lattner	function with a default implementation.
75930fdc8d8SChris Lattner	(DNBArch::NumSupportedHardwareWatchpoints): Ditto.
76030fdc8d8SChris Lattner	(DNBArch::EnableHardwareBreakpoint): Ditto.
76130fdc8d8SChris Lattner	(DNBArch::EnableHardwareWatchpoint): Ditto.
76230fdc8d8SChris Lattner	(DNBArch::DisableHardwareBreakpoint): Ditto.
76330fdc8d8SChris Lattner	(DNBArch::DisableHardwareWatchpoint): Ditto.
76430fdc8d8SChris Lattner	* DNB.h (DNBBreakpointSet): New take a HARDWARE parameter that allows
76530fdc8d8SChris Lattner	requests for setting hardware breakpoints.
76630fdc8d8SChris Lattner	(DNBWatchpointSet): New function prototype.
76730fdc8d8SChris Lattner	(DNBWatchpointClear): New function prototype.
76830fdc8d8SChris Lattner	(DNBWatchpointGetHitCount): New function prototype.
76930fdc8d8SChris Lattner	(DNBWatchpointGetIgnoreCount): New function prototype.
77030fdc8d8SChris Lattner	(DNBWatchpointSetIgnoreCount): New function prototype.
77130fdc8d8SChris Lattner	(DNBWatchpointSetCallback): New function prototype.
77230fdc8d8SChris Lattner	(DNBWatchpointPrint): New function prototype.
77330fdc8d8SChris Lattner	* MacOSX/arm/DNBArchImpl.cpp: Added hardware breakpoint and watchpoint
77430fdc8d8SChris Lattner	support for ARM.
77530fdc8d8SChris Lattner	(DNBArchMachARM::GetCPUType): New function.
77630fdc8d8SChris Lattner	(DNBArchMachARM::DumpDBGState): New function.
77730fdc8d8SChris Lattner	(DNBArchMachARM::GetDBGState): New function.
77830fdc8d8SChris Lattner	(DNBArchMachARM::SetDBGState): New function.
77930fdc8d8SChris Lattner	(DNBArchMachARM::EnableHardwareSingleStep): New function.
78030fdc8d8SChris Lattner	(DNBArchMachARM::EnableHardwareBreakpoint): New function.
78130fdc8d8SChris Lattner	(DNBArchMachARM::NotifyException): Removed.
78230fdc8d8SChris Lattner	(DNBArchMachARM::DisableHardwareBreakpoint): New function.
78330fdc8d8SChris Lattner	(DNBArchMachARM::EnableHardwareWatchpoint): New function.
78430fdc8d8SChris Lattner	(DNBArchMachARM::DisableHardwareWatchpoint): New function.
78530fdc8d8SChris Lattner	* MacOSX/MachThread.cpp (MachThread::Suspend): Added better logging.
78630fdc8d8SChris Lattner	(MachThread::Resume): Ditto.
78730fdc8d8SChris Lattner	(MachThread::RestoreSuspendCount): Ditto.
78830fdc8d8SChris Lattner	(MachThread::Dump): Ditto.
78930fdc8d8SChris Lattner	(MachThread::EnableHardwareBreakpoint): New function.
79030fdc8d8SChris Lattner	(MachThread::EnableHardwareWatchpoint): New function.
79130fdc8d8SChris Lattner	(MachThread::DisableHardwareBreakpoint): New function.
79230fdc8d8SChris Lattner	(MachThread::DisableHardwareWatchpoint): New function.
79330fdc8d8SChris Lattner	* MacOSX/MachThreadList.h (MachThreadList::GetLastError): Removed.
79430fdc8d8SChris Lattner	(MachThread::EnableHardwareBreakpoint): New prototype.
79530fdc8d8SChris Lattner	(MachThread::DisableHardwareBreakpoint): New prototype.
79630fdc8d8SChris Lattner	(MachThread::EnableHardwareWatchpoint): New prototype.
79730fdc8d8SChris Lattner	(MachThread::DisableHardwareWatchpoint): New prototype.
79830fdc8d8SChris Lattner	(class MachThread): Remove m_err member variable.
79930fdc8d8SChris Lattner	* MacOSX/ppc/DNBArchImpl.cpp (DNBArchMachPPC::GetCPUType) New
80030fdc8d8SChris Lattner	function.
80130fdc8d8SChris Lattner	(DNBArchMachPPC::NotifyException): Removed.
80230fdc8d8SChris Lattner	* MacOSX/ppc/DNBArchImpl.h (DNBArchMachPPC::NotifyException): Removed.
80330fdc8d8SChris Lattner	* MacOSX/MachThread.h (MachThread::EnableHardwareBreakpoint): New
80430fdc8d8SChris Lattner	prototype.
80530fdc8d8SChris Lattner	(MachThread::EnableHardwareWatchpoint): New prototype.
80630fdc8d8SChris Lattner	(MachThread::DisableHardwareBreakpoint): New prototype.
80730fdc8d8SChris Lattner	(MachThread::DisableHardwareWatchpoint): New prototype.
80830fdc8d8SChris Lattner	(class MachThread): Renambed class member m_exception to
80930fdc8d8SChris Lattner	m_stop_exception.
81030fdc8d8SChris Lattner	* MacOSX/MachProcess.cpp (MachProcess::SetState): Updated to use new
81130fdc8d8SChris Lattner	process event enumerations.
81230fdc8d8SChris Lattner	(MachProcess::PrivateResume): Added better logging.
81330fdc8d8SChris Lattner	(MachProcess::CreateBreakpoint): Added bool HARDWARE parameter for
81430fdc8d8SChris Lattner	requesting hardware breakpoints.
81530fdc8d8SChris Lattner	(MachProcess::CreateWatchpoint): New function.
81630fdc8d8SChris Lattner	(MachProcess::DisableAllWatchpoints): New function.
81730fdc8d8SChris Lattner	(MachProcess::DisableWatchpoint): New function.
81830fdc8d8SChris Lattner	(MachProcess::DumpWatchpoint): New function.
81930fdc8d8SChris Lattner	(MachProcess::EnableBreakpoint): Enabled breakpoints in hardware if
82030fdc8d8SChris Lattner	requested and supported.
82130fdc8d8SChris Lattner	(MachProcess::DisableBreakpoint): Disable hardware breakpoints if that
82230fdc8d8SChris Lattner	is how they were set.
82330fdc8d8SChris Lattner	(MachProcess::EnableWatchpoint): New function.
82430fdc8d8SChris Lattner	(MachProcess::ExceptionMessageBundleComplete): Wait for the
82530fdc8d8SChris Lattner	eEventProcessRunningStateChanged event to be reset before changing
82630fdc8d8SChris Lattner	state to stopped to avoid race condition with very fast start/stops.
82730fdc8d8SChris Lattner	(MachProcess::LaunchForDebug): Added posix_spawn support.
82830fdc8d8SChris Lattner	(MachProcess::PosixSpawnChildForPTraceDebugging): New function.
82930fdc8d8SChris Lattner	* MacOSX/i386/DNBArchImpl.cpp (DNBArchMachI386::GetCPUType): New
83030fdc8d8SChris Lattner	function.
83130fdc8d8SChris Lattner	* MacOSX/i386/DNBArchImpl.h (DNBArchMachI386::GetCPUType): New
83230fdc8d8SChris Lattner	prototype.
83330fdc8d8SChris Lattner	* MacOSX/MachProcess.h (PosixSpawnChildForPTraceDebugging): New
83430fdc8d8SChris Lattner	prototype.
83530fdc8d8SChris Lattner	* MacOSX/MachException.cpp (class MachException::ThreadMessage):
83630fdc8d8SChris Lattner	Renamed	class to MachException::Data.
83730fdc8d8SChris Lattner	* MacOSX/MachThreadList.cpp (class MachThreadList): Removed m_err
83830fdc8d8SChris Lattner	class member.
83930fdc8d8SChris Lattner	(MachThreadList::EnableHardwareBreakpoint): New function.
84030fdc8d8SChris Lattner	(MachThreadList::DisableHardwareBreakpoint): New function.
84130fdc8d8SChris Lattner	(MachThreadList::EnableHardwareWatchpoint): New function.
84230fdc8d8SChris Lattner	(MachThreadList::DisableHardwareWatchpoint): New function.
84330fdc8d8SChris Lattner	* MacOSX/MachException.h (class MachException::ThreadMessage):
84430fdc8d8SChris Lattner	Renamed	class to MachException::Data.
84530fdc8d8SChris Lattner	* DNBDefs.h (nub_watch_t): New typedef.
84630fdc8d8SChris Lattner	(INVALID_NUB_HW_INDEX): New macro definition.
84730fdc8d8SChris Lattner	(WATCH_TYPE_READ): New macro definition.
84830fdc8d8SChris Lattner	(WATCH_TYPE_WRITE): New macro definition.
84930fdc8d8SChris Lattner	(NUB_STATE_IS_RUNNING): New macro to see if state is a running state.
85030fdc8d8SChris Lattner	(NUB_STATE_IS_STOPPED): New macro to see if state is a stopped state.
85130fdc8d8SChris Lattner	(eEventProcessStateChanged): Deprecated.
85230fdc8d8SChris Lattner	(eEventProcessRunningStateChanged): New process event state.
85330fdc8d8SChris Lattner	(eEventProcessStoppedStateChanged): New process event state.
85430fdc8d8SChris Lattner	(LOG_WATCHPOINTS): New macro definition for logging watchpoints.
85530fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Use new process
85630fdc8d8SChris Lattner	event states.
85730fdc8d8SChris Lattner	* FunctionProfiler.cpp: New class that allows single stepping through
85830fdc8d8SChris Lattner	an address range for tracing exact call graphs.
85930fdc8d8SChris Lattner
86030fdc8d8SChris Lattner2008-09-22  Greg Clayton  <[email protected]>
86130fdc8d8SChris Lattner
86230fdc8d8SChris Lattner        * RNBRemote.h (GetContinueThread): If the continue thread is zero or
86330fdc8d8SChris Lattner        -1 then return GetCurrentThread().
86430fdc8d8SChris Lattner        * RNBRemote.cpp (m_packets): Made the vCont functions call
86530fdc8d8SChris Lattner        RNBRemote::HandlePacket_v().
86630fdc8d8SChris Lattner        (RNBRemote::HandlePacket_H): Cleaned up whitespace.
86730fdc8d8SChris Lattner        (RNBRemote::HandlePacket_last_signal): Return actual signal values for
86830fdc8d8SChris Lattner        EXE_SOFTWARE/EXC_SOFT_SIGNAL mach exceptions.
86930fdc8d8SChris Lattner        (RNBRemote::HandlePacket_v): Implemented the 'vCont?' and 'vCont;'
87030fdc8d8SChris Lattner        packets.
87130fdc8d8SChris Lattner        (RNBRemote::HandlePacket_c): Handle the case where an address is
87230fdc8d8SChris Lattner        provided.
87330fdc8d8SChris Lattner        (RNBRemote::HandlePacket_C): Implemented the continue with signal
87430fdc8d8SChris Lattner        including when an address is provided.
87530fdc8d8SChris Lattner        (RNBRemote::HandlePacket_S): Implemented the step with signal
87630fdc8d8SChris Lattner        including when an address is provided.
87730fdc8d8SChris Lattner        * DNB.cpp (DNBProcessResume): Pass 0 as the signal when resuming
87830fdc8d8SChris Lattner        a process without specifying a thread.
87930fdc8d8SChris Lattner        (DNBThreadResume): Pass 0 as the signal when resuming a specific thread.
88030fdc8d8SChris Lattner        (DNBThreadResumeWithSignal): New function.
88130fdc8d8SChris Lattner        * DNB.h (DNBThreadResumeWithSignal): New prototype.
88230fdc8d8SChris Lattner        * MachException.h (MachException::Message::Reply): Added a signal
88330fdc8d8SChris Lattner        parameter.
88430fdc8d8SChris Lattner        * MachException.cpp (MachException::Message::Reply): Update the thread
88530fdc8d8SChris Lattner        with the new SIGNAL parameter instead of always zero so signals can be
88630fdc8d8SChris Lattner        passed on to programs.
88730fdc8d8SChris Lattner        * MachProcess.h (MachProcess::Resume): Added a signal parameter.
88830fdc8d8SChris Lattner        * MachProcess.h (MachProcess::PrivateResume): Added a signal parameter.
88930fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::Resume): Pass new SIGNAL parameter to
89030fdc8d8SChris Lattner        MachProcess::PrivateResume.
89130fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::PrivateResume): Pass new SIGNAL
89230fdc8d8SChris Lattner        parameter to the mach exception reply.
89330fdc8d8SChris Lattner
89430fdc8d8SChris Lattner2008-08-08  Greg Clayton  <[email protected]>
89530fdc8d8SChris Lattner
89630fdc8d8SChris Lattner        * DNB.cpp (gProcessMap): Removed static C++ global.
89730fdc8d8SChris Lattner        (GetProcessMap): New Function.
89830fdc8d8SChris Lattner        (AddProcessToMap): New function.
89930fdc8d8SChris Lattner        (RemoveProcessFromMap): New function.
90030fdc8d8SChris Lattner        (GetProcessSP): Use new GetProcessMap function to get process list.
90130fdc8d8SChris Lattner
90230fdc8d8SChris Lattner2008-07-30  Greg Clayton  <[email protected]>
90330fdc8d8SChris Lattner
90430fdc8d8SChris Lattner        * debugserver-entitlements.plist (get-task-allow): Removed.
90530fdc8d8SChris Lattner        (run-invalid-allow): Added boolean value set to TRUE.
90630fdc8d8SChris Lattner
90730fdc8d8SChris Lattner2008-04-18  Greg Clayton  <[email protected]>
90830fdc8d8SChris Lattner
90930fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::Task): Added getuid(), geteuid(),
91030fdc8d8SChris Lattner        getgid(), getegid() to the log message if task for pid fails.
91130fdc8d8SChris Lattner
91230fdc8d8SChris Lattner2008-04-07  Greg Clayton  <[email protected]>
91330fdc8d8SChris Lattner
91430fdc8d8SChris Lattner        * RNBContext.cpp (RNBContext::LaunchStatusAsString): Removed unused
91530fdc8d8SChris Lattner        tmp_str variable.
91630fdc8d8SChris Lattner
91730fdc8d8SChris Lattner2008-04-04  Greg Clayton  <[email protected]>
91830fdc8d8SChris Lattner
91930fdc8d8SChris Lattner        * CFString.cpp/h (UTF8): Made a static function that can convert
92030fdc8d8SChris Lattner        a CFStringRef to UTF8.
92130fdc8d8SChris Lattner
92230fdc8d8SChris Lattner2008-04-04  Greg Clayton  <[email protected]>
92330fdc8d8SChris Lattner
92430fdc8d8SChris Lattner        * test-remotenub.cpp (main): Make sure we exit after we send the
92530fdc8d8SChris Lattner        application list.
92630fdc8d8SChris Lattner
92730fdc8d8SChris Lattner2008-04-04  Greg Clayton  <[email protected]>
92830fdc8d8SChris Lattner
92930fdc8d8SChris Lattner        * RNBServices.h (IsSBProcess): New prototype;
93030fdc8d8SChris Lattner        * RNBServices.cpp (IsSBProcess): New function that returns true it
93130fdc8d8SChris Lattner        SpringBoard owns or knows about the process.
93230fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::HandlePacket_v): Made attach work correctly.
93330fdc8d8SChris Lattner        * DNB.cpp (DNBProcessSBAttach): New function for use when attaching to
93430fdc8d8SChris Lattner        a process owned by SpringBoard.
93530fdc8d8SChris Lattner        (DNBProcessAttach): Fixed an issue where a local was shadowing a
93630fdc8d8SChris Lattner        parameter.
93730fdc8d8SChris Lattner        * DNB.h (DNBProcessSBAttach): New prototype.
93830fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::AttachForDebug): AttachForDebug now
93930fdc8d8SChris Lattner        takes some flags so it knows to enable SpringBoard functionality.
94030fdc8d8SChris Lattner        * MachProcess.h (MachProcess::AttachForDebug): Added flags parameter
94130fdc8d8SChris Lattner        to prototype.
94230fdc8d8SChris Lattner
94330fdc8d8SChris Lattner2008-04-04  Greg Clayton  <[email protected]>
94430fdc8d8SChris Lattner
94530fdc8d8SChris Lattner        * test-remotenub.cpp (RNBRunLoopGetArgsFromRemote): Handle the new
94630fdc8d8SChris Lattner        attach packet and watch for connection being lost.
94730fdc8d8SChris Lattner        (main): handle the --applist option when there we aren't using lockdown
94830fdc8d8SChris Lattner        by printing the results to stdout and exiting with appropriate error code
94930fdc8d8SChris Lattner        if we failed. Also handle the new prototype for ListApplications.
95030fdc8d8SChris Lattner        * RNBServices.h (ListApplications): Change first parameter to be a std::string
95130fdc8d8SChris Lattner        that will get the contents of the plist so we can use this for more than
95230fdc8d8SChris Lattner        just lockdown.
95330fdc8d8SChris Lattner        * RNBServices.cpp (ListApplications): Change first parameter to be a std::string
95430fdc8d8SChris Lattner        that will get the contents of the plist so we can use this for more than
95530fdc8d8SChris Lattner        just lockdown and also fixed the logic so we actually create a full list of
95630fdc8d8SChris Lattner        applications instead of just overwriting the first entry.
95730fdc8d8SChris Lattner        * RNBRemote.h (PacketEnum): Added a new 'vattach' enum for the "vAttach;PID"
95830fdc8d8SChris Lattner        gdb remote command.
95930fdc8d8SChris Lattner        (RNBRemote::HandlePacket_v): New prototype;
96030fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::CreatePacketTable): add the vattach packet definition
96130fdc8d8SChris Lattner        to m_packets.
96230fdc8d8SChris Lattner        (RNBRemote::HandlePacket_v): New function that handles attach to a process.
96330fdc8d8SChris Lattner
96430fdc8d8SChris Lattner2008-04-03  Jim Ingham  <[email protected]>
96530fdc8d8SChris Lattner
96630fdc8d8SChris Lattner	* RNBRemote.h: Add query_launch_success to packet enum.
96730fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable_): Add query_launch_success.
96830fdc8d8SChris Lattner	(HandlePacket_q): Handle query_launch_success.
96930fdc8d8SChris Lattner	* DNB.cpp (DNBProcessSBLaunch): Pass in launch_retval.
97030fdc8d8SChris Lattner	* DNB.h: Change prototype of DNBProcessSBLaunch to take launch_retval.
97130fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::LaunchStatusAsString): New function.
97230fdc8d8SChris Lattner	* RNBContext.h (RNBContext): Add m_launch_status & accessors.
97330fdc8d8SChris Lattner	* macosx/MachProcess.cpp (MachProcess::SBLaunchForDebug): Pass launch_retval.
97430fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Accept & set launch_retval.
97530fdc8d8SChris Lattner	* Macosx/MachProcess.h: Change prototypes of SBLaunchForDebug &
97630fdc8d8SChris Lattner	ForkChildForPTraceDebugging to accept launch_retval.
97730fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Get the launch status and
97830fdc8d8SChris Lattner	put it in the context, then wait for the qLaunchStatus packet.
97930fdc8d8SChris Lattner
98030fdc8d8SChris Lattner2008-04-03  Greg Clayton  <[email protected]>
98130fdc8d8SChris Lattner
98230fdc8d8SChris Lattner        * com.apple.debugserver.plist: Changed plist so debugserver
98330fdc8d8SChris Lattner        runs as mobile user.
98430fdc8d8SChris Lattner        * com.apple.debugserver.applist.plist: Ditto.
98530fdc8d8SChris Lattner
98630fdc8d8SChris Lattner2008-04-03  Greg Clayton  <[email protected]>
98730fdc8d8SChris Lattner
98830fdc8d8SChris Lattner        * MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging):
98930fdc8d8SChris Lattner        Increased SBS application launch timeout to 30 seconds.
99030fdc8d8SChris Lattner
99130fdc8d8SChris Lattner2008-03-27 Christopher Friesen <[email protected]>
99230fdc8d8SChris Lattner
99330fdc8d8SChris Lattner        * RNBServices.h: Pass tasks from SpringBoard as a plist
99430fdc8d8SChris Lattner        * RNBServices.cpp: Ditto.
99530fdc8d8SChris Lattner        * test-remotenub.cpp: added --applist flag
99630fdc8d8SChris Lattner        * com.apple.debugserver.applist.plist: Agent plist
99730fdc8d8SChris Lattner
99830fdc8d8SChris Lattner2008-03-17  Jim Ingham  <[email protected]>
99930fdc8d8SChris Lattner
100030fdc8d8SChris Lattner        * DNB.h: Pass envp to DNBProcessLaunch & DNBProcessSBLaunch.
100130fdc8d8SChris Lattner        * DNB.cpp: Ditto.
100230fdc8d8SChris Lattner        * MachProcess.h: Ditto for *LaunchForDebug and
100330fdc8d8SChris Lattner        *ForkChildForPtraceDebugging.
100430fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::LaunchForDebug): Pass on envp.
100530fdc8d8SChris Lattner        (MachProcess::SBLaunchForDebug): Ditto.
100630fdc8d8SChris Lattner        (MachProcess::ForkChildForPtraceDebugging): Accept envp, haven't actually
100730fdc8d8SChris Lattner        implemented the passing yet.
100830fdc8d8SChris Lattner        (MachProcess::SBForkChildForPtraceDebuggin): Accept envp, convert to
100930fdc8d8SChris Lattner        CFDictionary and pass to SBSLaunchApplication.
101030fdc8d8SChris Lattner        * RNBContext.h: Add environment to the context.
101130fdc8d8SChris Lattner        * RBNContext.cpp (RNBContext::EnvironmentAtIndex): New function.
101230fdc8d8SChris Lattner        * RNBRemote.h: Add set_environment_variable to the PacketEnum.
101330fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::CreatePacketTable): Add QEnvironment:.
101430fdc8d8SChris Lattner        * (RNBRemote::HandlePacket_Q): Ingest the environment variable.
101530fdc8d8SChris Lattner        * test-remotenub.cpp (RNBRunLoppLaunchInferior): Convert the env
101630fdc8d8SChris Lattner        array in the context into an array, and pass it to the DNBProcess*Launch
101730fdc8d8SChris Lattner        methods.
101830fdc8d8SChris Lattner
101930fdc8d8SChris Lattner2008-03-17  Greg Clayton  <[email protected]>
102030fdc8d8SChris Lattner
102130fdc8d8SChris Lattner	* DNBBreakpoint.cpp (DNBBreakpointList::GetBreakpointAtIndex): New
102230fdc8d8SChris Lattner	functions (const and non-const versions).
102330fdc8d8SChris Lattner	* DNBBreakpoint.h (DNBBreakpointList::GetBreakpointAtIndex): New
102430fdc8d8SChris Lattner	prototypes (const and non-const versions).
102530fdc8d8SChris Lattner	* DNBError.h (DNBError::Success()): Don't use KERN_SUCCESS define.
102630fdc8d8SChris Lattner	(DNBError::Fail()): Don't use KERN_SUCCESS define.
102730fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::DisableAllBreakpoints): New function.
102830fdc8d8SChris Lattner	(MachProcess::Detach): Added initial implementation that will halt
102930fdc8d8SChris Lattner	the process, disable all breakpoints and call PT_DETACH.
103030fdc8d8SChris Lattner	* MachProcess.h (MachProcess::DisableAllBreakpoints): New prototype.
103130fdc8d8SChris Lattner
103230fdc8d8SChris Lattner2008-03-04  Greg Clayton  <[email protected]>
103330fdc8d8SChris Lattner
103430fdc8d8SChris Lattner        * RNBRemote.h (RNBRemote::SendHexEncodedBytePacket): New prototype.
103530fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::SendHexEncodedBytePacket): New function.
103630fdc8d8SChris Lattner        (RNBRemote::SendSTDOUTPacket): Use SendHexEncodedBytePacket function
103730fdc8d8SChris Lattner        to send bytes.
103830fdc8d8SChris Lattner        (RNBRemote::SendSTDERRPacket): Ditto.
103930fdc8d8SChris Lattner        (RNBRemote::HandlePacket_q): Return a valid thread info string for
104030fdc8d8SChris Lattner        qThreadExtraInfo queries.
104130fdc8d8SChris Lattner        * DNB.cpp (DNBThreadPrintStopReason): Commented out unused function.
104230fdc8d8SChris Lattner        (DNBThreadGetInfo): New function.
104330fdc8d8SChris Lattner        * DNB.h (DNBThreadPrintStopReason): Commented out prototype.
104430fdc8d8SChris Lattner        (DNBThreadGetInfo): New prototype.
104530fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::GetThreadInfo): New function.
104630fdc8d8SChris Lattner        * MachProcess.h (MachProcess::GetThreadInfo): New prototype.
104730fdc8d8SChris Lattner        * MachThreadList.cpp (MachThreadList::GetThreadInfo): New function.
104830fdc8d8SChris Lattner        * MachThreadList.h (MachThreadList::GetThreadInfo): New prototype.
104930fdc8d8SChris Lattner        * MachThread.cpp (MachThread::GetBasicInfoAsString): New function.
105030fdc8d8SChris Lattner        (MachThread::InferiorThreadID): New function.
105130fdc8d8SChris Lattner        * MachThread.cpp (MachThread::GetBasicInfoAsString): New prototype.
105230fdc8d8SChris Lattner        (MachThread::InferiorThreadID): New prototype.
105330fdc8d8SChris Lattner
105430fdc8d8SChris Lattner2008-02-27  Greg Clayton  <[email protected]>
105530fdc8d8SChris Lattner
105630fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): Set the
105730fdc8d8SChris Lattner        current thread when we notify a thread has stopped to subsequent
105830fdc8d8SChris Lattner        g and p packets get the correct data.
105930fdc8d8SChris Lattner
106030fdc8d8SChris Lattner2008-02-26  Jason Molenda  ([email protected])
106130fdc8d8SChris Lattner
106230fdc8d8SChris Lattner	* RNBRemote.h: Add query_thread_extra_info enum.
106330fdc8d8SChris Lattner	* RNBRemote.cpp: Add support for qThreadExtraInfo.
106430fdc8d8SChris Lattner	Currently we return 'Ok' as the packet status for
106530fdc8d8SChris Lattner        every thread.
106630fdc8d8SChris Lattner
106730fdc8d8SChris Lattner2008-02-26  Jason Molenda  ([email protected])
106830fdc8d8SChris Lattner
106930fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Correct handling
107030fdc8d8SChris Lattner	of qfThreadInfo/qsThreadInfo.
107130fdc8d8SChris Lattner
107230fdc8d8SChris Lattner2008-02-20  Jason Molenda  ([email protected])
107330fdc8d8SChris Lattner
107430fdc8d8SChris Lattner	* RNBRemote.h: Change default for gdb's max incoming packet size to
107530fdc8d8SChris Lattner	reflect the real default size.
1076d93c4a33SBruce Mitchener	* RNBRemote.cpp (HandlePacket_Q): Correct the string comparisons for
107730fdc8d8SChris Lattner	the QSetMaxPayloadSize and QSetMaxPacketSize packets.
107830fdc8d8SChris Lattner
107930fdc8d8SChris Lattner2008-02-19 Christopher Friesen <[email protected]>
108030fdc8d8SChris Lattner
108130fdc8d8SChris Lattner        * CFDataFormatters.c: CoreFoundation data formatters added to project.
108230fdc8d8SChris Lattner
108330fdc8d8SChris Lattner2008-02-19  Jason Molenda  ([email protected])
108430fdc8d8SChris Lattner
108530fdc8d8SChris Lattner	* RNBRemote.h: Record the max payload size, not the max packet
108630fdc8d8SChris Lattner        size for less ambiguous meaning.
108730fdc8d8SChris Lattner	* RNBRemote.cpp: Add support for QSetMaxPayloadSize: packet which
108830fdc8d8SChris Lattner	should have a clearer meaning than QSetMaxPacketSize.
108930fdc8d8SChris Lattner	QSetMaxPacketSize will be removed once we get have a chance to get
109030fdc8d8SChris Lattner	a new debugserver and gdb submitted.
109130fdc8d8SChris Lattner
109230fdc8d8SChris Lattner2008-02-18  Jason Molenda  ([email protected])
109330fdc8d8SChris Lattner
109430fdc8d8SChris Lattner	* RNBRemote.h: Make default size 1024.
109530fdc8d8SChris Lattner	* RNBRemote.cpp: Questionmark packet should stay under
109630fdc8d8SChris Lattner	max_packet_size - 5 to allow for start, end, checksum and nul
109730fdc8d8SChris Lattner	char bytes.
109830fdc8d8SChris Lattner
109930fdc8d8SChris Lattner2008-02-18  Jason Molenda  ([email protected])
110030fdc8d8SChris Lattner
110130fdc8d8SChris Lattner	* RNBRemote.h: Add m_max_packet_size to class defn.
110230fdc8d8SChris Lattner	* RNBRemote.cpp: Initialize it, use it.
110330fdc8d8SChris Lattner
110430fdc8d8SChris Lattner2008-02-18  Jason Molenda  ([email protected])
110530fdc8d8SChris Lattner
110630fdc8d8SChris Lattner	* RNBRemote.h: Add set_max_packet_size.
110730fdc8d8SChris Lattner	* RNBRemote.cpp: Add QSetMaxPacketSize packet handling.
110830fdc8d8SChris Lattner
110930fdc8d8SChris Lattner2008-02-18  Greg Clayton <[email protected]>
111030fdc8d8SChris Lattner
111130fdc8d8SChris Lattner        * test-remotenub.cpp (HandleProcessStateChange): Call new
111230fdc8d8SChris Lattner        RNBRemote::FlushSTDIO function.
111330fdc8d8SChris Lattner        (RNBRunLoopInferiorExecuting): Ditto.
111430fdc8d8SChris Lattner        * RNBRemote.h (RNBRemote::FlushSTDIO): New prototype.
111530fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::FlushSTDIO): New function to
111630fdc8d8SChris Lattner        centralize the stdio.
111730fdc8d8SChris Lattner
111830fdc8d8SChris Lattner2008-02-18  Greg Clayton <[email protected]>
111930fdc8d8SChris Lattner
112030fdc8d8SChris Lattner	* DNB.cpp (DNBProcessWaitForEvent): Added timeout pointer as
112130fdc8d8SChris Lattner	parameter that can be NULL for infinite timeout to simplify
112230fdc8d8SChris Lattner	the DNB interface.
112330fdc8d8SChris Lattner	(DNBProcessTimedWaitForEvent): Removed function.
112430fdc8d8SChris Lattner	* DNB.h (DNBProcessWaitForEvent): Added timeout argument.
112530fdc8d8SChris Lattner	(DNBProcessTimedWaitForEvent): Removed prototype.
112630fdc8d8SChris Lattner	* DNBTimer.h (DNBTimer::OffsetTimeOfDay): New function.
112730fdc8d8SChris Lattner	* CFString.cpp (CFString::GetLength() const): New function.
112830fdc8d8SChris Lattner	* CFString.h (CFString::GetLength() const): New prototype.
112930fdc8d8SChris Lattner	* MachProcess.h (MachProcess class): Removed m_attached and
113030fdc8d8SChris Lattner	added m_flags.
113130fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::AttachForDebug): Set m_flags
113230fdc8d8SChris Lattner	to indicate we attached.
113330fdc8d8SChris Lattner	(MachProcess::SBLaunchForDebug): Set m_flags to indicate we
113430fdc8d8SChris Lattner	attached using SpringBoard and that we attached.
113530fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Changed to new
113630fdc8d8SChris Lattner	SpringBoardServices API.
113730fdc8d8SChris Lattner	(MachProcess::ThreadFunctionException): Added code that will
113830fdc8d8SChris Lattner	renew a watchdog assertion when we launch apps through
113930fdc8d8SChris Lattner	SpringBoardServices.
114030fdc8d8SChris Lattner	* PThreadEvent.cpp (PThreadEvent::WaitForSetEvents): Simplified
114130fdc8d8SChris Lattner	PThreadEvent API to have only one version of WaitForSetEvents
114230fdc8d8SChris Lattner	that has an optional timeout pointer argument.
114330fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::StopProcessStatusThread): Adapt
114430fdc8d8SChris Lattner	to new PThreadEvent API changes.
114530fdc8d8SChris Lattner	(RNBContext::ThreadFunctionProcessStatus): Adapt to new
114630fdc8d8SChris Lattner	DNBProcessWaitForEvent API changes.
114730fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::StopReadRemoteDataThread): Adapt
114830fdc8d8SChris Lattner	to new PThreadEvent API changes.
114930fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Adapt to new
115030fdc8d8SChris Lattner	DNBProcessWaitForEvent API changes.
115130fdc8d8SChris Lattner	(RNBRunLoopInferiorExecuting): Process STDIO first, then
115230fdc8d8SChris Lattner	incoming packets.
115330fdc8d8SChris Lattner
115430fdc8d8SChris Lattner2008-02-14  Jason Molenda  ([email protected])
115530fdc8d8SChris Lattner
115630fdc8d8SChris Lattner	* MachProcess.cpp: (MachProcess::SBForkChildForPTraceDebugging):
1157*0965b59bSJonas Devlieghere	Set mode bits on secondary side of pty.
115830fdc8d8SChris Lattner
115930fdc8d8SChris Lattner2008-02-12  Greg Clayton  <[email protected]>
116030fdc8d8SChris Lattner
116130fdc8d8SChris Lattner        * DNB.cpp (DNBEnableLogging): Removed function.
116230fdc8d8SChris Lattner        (DNBThreadPrintStopReason): Removed the file handle from this
116330fdc8d8SChris Lattner        function and use DNBLog calls.
116430fdc8d8SChris Lattner        * DNB.h (DNBEnableLogging): Removed function prototype.
116530fdc8d8SChris Lattner        (DNBThreadPrintStopReason): Removed the file handle
116630fdc8d8SChris Lattner        from the function prototype in favor of using DNBLog calls.
116730fdc8d8SChris Lattner        * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle to use
116830fdc8d8SChris Lattner        DNBLog for the logging and print a log line each time a full line
116930fdc8d8SChris Lattner        is ready for output after caching it in a local buffer.
117030fdc8d8SChris Lattner        * DNBDataRef.cpp (DNBDataRef::Dump): Removed file handle from
117130fdc8d8SChris Lattner        prototype.
117230fdc8d8SChris Lattner        * DNBDefs.h (DNBCallbackLog): New callback prototype for all
117330fdc8d8SChris Lattner        logging.
117430fdc8d8SChris Lattner        DNBLog.cpp(g_debug_opt): Renamed to d_debug and made it a file
117530fdc8d8SChris Lattner        static.
117630fdc8d8SChris Lattner        (DNBLogGetDebug): New accessor function for g_debug.
117730fdc8d8SChris Lattner        (DNBLogSetDebug): New accessor function for g_debug.
117830fdc8d8SChris Lattner        (g_verbose): Made into a file static and added accessors.
117930fdc8d8SChris Lattner        (DNBLogGetVerbose): New accessor function for g_verbose.
118030fdc8d8SChris Lattner        (DNBLogSetVerbose): New accessor function for g_verbose.
118130fdc8d8SChris Lattner        (DNBLogSetLogCallback): New function call that registers a logging
118230fdc8d8SChris Lattner        callback for all logging in libdebugnub.dylib and any code that
118330fdc8d8SChris Lattner        loads it.
118430fdc8d8SChris Lattner        (DNBLogToASL): Removed function as it is deprecated in favor of
11856a7f3338SBruce Mitchener        using DNBLogSetLogCallback to register a callback function that
118630fdc8d8SChris Lattner        implements the logging.
118730fdc8d8SChris Lattner        (DNBLogToFile): Ditto.
118830fdc8d8SChris Lattner        (DNBLogCloseLogFile): Ditto.
118930fdc8d8SChris Lattner        (DNBLogToFile): Ditto.
119030fdc8d8SChris Lattner        (DNBLogToFile): Ditto.
119130fdc8d8SChris Lattner        (_DNBLogPuts): Removed unused function.
119230fdc8d8SChris Lattner        (_DNBLogVAPrintf): Calls the callback function to do the logging
119330fdc8d8SChris Lattner        if one has been registered.
119430fdc8d8SChris Lattner        * DNBLog.h (DNBLOG_FLAG_FATAL): New defines that get passed to
119530fdc8d8SChris Lattner        any registered logging callback functions.
119630fdc8d8SChris Lattner        (DNBLOG_FLAG_FATAL): Ditto.
119730fdc8d8SChris Lattner        (DNBLOG_FLAG_ERROR): Ditto.
119830fdc8d8SChris Lattner        (DNBLOG_FLAG_WARNING): Ditto.
119930fdc8d8SChris Lattner        (DNBLOG_FLAG_DEBUG): Ditto.
120030fdc8d8SChris Lattner        (DNBLOG_FLAG_VERBOSE): Ditto.
120130fdc8d8SChris Lattner        (DNBLOG_FLAG_THREADED): Ditto.
120230fdc8d8SChris Lattner        (DNBLog*): All logging calls are now exported from libdebugnub.dylib
120330fdc8d8SChris Lattner        so there aren't two copies (one in debugserver and one in debugnub).
120430fdc8d8SChris Lattner        C99 vararg Macros wrap all logging calls so no var arg processing
120530fdc8d8SChris Lattner        occurs when logging is disabled.
120630fdc8d8SChris Lattner        * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Removed file
120730fdc8d8SChris Lattner        handle and now use DNBLog calls.
120830fdc8d8SChris Lattner        * DNBRegisterInfo.h (DNBRegisterValueClass::Dump): Removed file
120930fdc8d8SChris Lattner        handle from prototype.
121030fdc8d8SChris Lattner        * MachException.cpp (catch_mach_exception_raise_state_identity):
121130fdc8d8SChris Lattner        Removed newlines from logging call.
121230fdc8d8SChris Lattner        (catch_mach_exception_raise): Ditto.
121330fdc8d8SChris Lattner        (MachException::Message::Dump): Removed file handle from params
121430fdc8d8SChris Lattner        and removed newlines from logging call.
121530fdc8d8SChris Lattner        (MachException::ThreadMessage::DumpStopReason): Removed file handle
121630fdc8d8SChris Lattner        from params and use DNBLog for logging output.
121730fdc8d8SChris Lattner        (MachException::ThreadMessage::Dump): Log using DNBLog instead of
121830fdc8d8SChris Lattner        file handle.
121930fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::DumpThreadStoppedReason): Ditto.
122030fdc8d8SChris Lattner        (MachProcess::ReadMemory): Ditto.
122130fdc8d8SChris Lattner        (MachProcess::WriteMemory): Ditto.
122230fdc8d8SChris Lattner        (ExceptionMessageBundleComplete): Ditto.
122330fdc8d8SChris Lattner        * MachThread.cpp (MachThread::Dump): Ditto.
122430fdc8d8SChris Lattner        (MachThread::DumpRegisterState): Ditto.
122530fdc8d8SChris Lattner        * MachThreadList.cpp (MachThreadList::DumpThreadStoppedReason): Ditto.
122630fdc8d8SChris Lattner        (MachThreadList::Dump): Ditto.
122730fdc8d8SChris Lattner        * RNBRemote.cpp (set_logging): Use new function callback registration
122830fdc8d8SChris Lattner        calls when enabling ASL logging.
122930fdc8d8SChris Lattner        test-remotenub.cpp (ASLLogCallback): New function to handle all ASL
123030fdc8d8SChris Lattner        logging. This function gets registered with libdebugnub.dylib when we
123130fdc8d8SChris Lattner        want to log using ASL.
123230fdc8d8SChris Lattner        (FileLogCallback): New function to handle all file logging. This
123330fdc8d8SChris Lattner        function gets registered with libdebugnub.dylib when we want to log
123430fdc8d8SChris Lattner        to a 'FILE *'.
123530fdc8d8SChris Lattner        (main): Register the logging callback functions when we want to log
123630fdc8d8SChris Lattner        to file or using ASL.
123730fdc8d8SChris Lattner
123830fdc8d8SChris Lattner2008-02-12  Greg Clayton  <[email protected]>
123930fdc8d8SChris Lattner
124030fdc8d8SChris Lattner        * test-remotenub.cpp (main): Default to ASL logging with no log
124130fdc8d8SChris Lattner        bits set to allow for warning and error logging.
124230fdc8d8SChris Lattner        * RNBRemote.h (struct Breakpoint): New structure for ref counting
124330fdc8d8SChris Lattner        breakpoints in Z and z packets.
124430fdc8d8SChris Lattner        * RNBRemote.cpp (RNBRemote::SendPacket): Use new LOG_RNB_PACKETS
124530fdc8d8SChris Lattner        defined when logging actual packet content.
124630fdc8d8SChris Lattner        (RNBRemote::HandleAsyncPacket): Ditto.
124730fdc8d8SChris Lattner        (RNBRemote::HandleReceivedPacket): Ditto.
124830fdc8d8SChris Lattner        (RNBRemote::HandlePacket_z): Ref count the setting and removing
124930fdc8d8SChris Lattner        of breakpoints with the Z and z packets using new struct
125030fdc8d8SChris Lattner        RNBRemote::Breakpoint.
125130fdc8d8SChris Lattner        * RNBDefs.h (LOG_RNB_PACKETS): New define for logging the sending
125230fdc8d8SChris Lattner        and receiving of packets data.
125330fdc8d8SChris Lattner        * DNB.cpp (DNBPrintf): Check for NULL file handle.
125430fdc8d8SChris Lattner        * DNBBreakpoint.cpp (DNBBreakpoint::Dump): Ditto.
125530fdc8d8SChris Lattner        (DNBBreakpointList::Dump): Ditto.
125630fdc8d8SChris Lattner        * DNBDefs.h (LOG_EVENTS): New define for logging PThreadEvent.
125730fdc8d8SChris Lattner        * DNBLog.cpp (g_debug_opt): Relocated outside of #if that turns off
125830fdc8d8SChris Lattner        logging completely to allow option parsing code that uses it to
125930fdc8d8SChris Lattner        still compile.
126030fdc8d8SChris Lattner        (g_verbose): Ditto.
126130fdc8d8SChris Lattner        * DNBLog.h (DNBLogToASL): Added prototype for when logging is
126230fdc8d8SChris Lattner        disabled via preprocessor macro.
126330fdc8d8SChris Lattner        (DNBLogToFile): Ditto.
126430fdc8d8SChris Lattner        * DNBRegisterInfo.cpp (DNBRegisterValueClass::Dump): Check for NULL
126530fdc8d8SChris Lattner        file handle.
126630fdc8d8SChris Lattner        * MachException.cpp (MachException::ThreadMessage::DumpStopReason): Ditto.
126730fdc8d8SChris Lattner        (MachException::ThreadMessage::Dump): Ditto.
126830fdc8d8SChris Lattner        * MachProcess.cpp (MachProcess::CreateBreakpoint): Improved logging.
126930fdc8d8SChris Lattner        (MachProcess::DisableBreakpoint): Verify the original opcode gets
127030fdc8d8SChris Lattner        restored, improved logging and added unconditional logging for when
127130fdc8d8SChris Lattner        things go wrong.
127230fdc8d8SChris Lattner        (MachProcess::EnableBreakpoint): Verify the breakpoint opcode gets
127330fdc8d8SChris Lattner        written, improved logging and added unconditional logging for when
127430fdc8d8SChris Lattner        things go wrong.
127530fdc8d8SChris Lattner        * MachThread.cpp (MachThread::Dump): Check for NULL file handle.
127630fdc8d8SChris Lattner        * MachVMMemory.cpp (MachVMMemory::WriteRegion): Flush caches in inferior
127730fdc8d8SChris Lattner        after writing to inferior memory.
127830fdc8d8SChris Lattner        * PThreadEvent.cpp: Changed all logging calls to key off of LOG_EVENTS
127930fdc8d8SChris Lattner        instead of LOG_VERBOSE.
128030fdc8d8SChris Lattner        MachDYLD.cpp (MachDYLD::Dump): Check for NULL file handle.
128130fdc8d8SChris Lattner        (MachDYLD::DYLIBInfo::Dump): Ditto.
128230fdc8d8SChris Lattner        ProfileObjectiveC.cpp (ProfileObjectiveC::DumpStats): Ditto.
128330fdc8d8SChris Lattner
128430fdc8d8SChris Lattner2008-02-09  Jason Molenda  ([email protected])
128530fdc8d8SChris Lattner
128630fdc8d8SChris Lattner	* RNBRemote.cpp (set_logging): Log to ASL unconditionally when
128730fdc8d8SChris Lattner	processing a QSetLogging packet.
128830fdc8d8SChris Lattner
128930fdc8d8SChris Lattner2008-02-06  Greg Clayton  <[email protected]>
129030fdc8d8SChris Lattner
129130fdc8d8SChris Lattner        * test-remotenub.cpp (main): Dup stdout and stderr to /dev/NULL
129230fdc8d8SChris Lattner        when we use lockdown.
129330fdc8d8SChris Lattner
129430fdc8d8SChris Lattner2008-02-06  Greg Clayton  <[email protected]>
129530fdc8d8SChris Lattner
129630fdc8d8SChris Lattner	* RNBSocket.cpp (RNBSocket::Disconnect): Removed unused var ERR.
129730fdc8d8SChris Lattner	* RNBRemote.cpp(RNBRemote::HandlePacket_Q): Removed unused var PID.
129830fdc8d8SChris Lattner	* DNBError.cpp (DNBError::LogThreadedIfError): Removed unused var
129930fdc8d8SChris Lattner	ERR_MSG.
130030fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Removed unused
130130fdc8d8SChris Lattner	variable EXECUTABLE_LENGTH.
130230fdc8d8SChris Lattner	(main): Removed unused variable ARG_IDX.
130330fdc8d8SChris Lattner
130430fdc8d8SChris Lattner2008-02-06  Chris Marcellino ([email protected]) and Myke Olson ([email protected])
130530fdc8d8SChris Lattner
130630fdc8d8SChris Lattner	* MachProcess.cpp (SBForkChildForPTraceDebugging): Bring up to date with
130730fdc8d8SChris Lattner	current SpringBoardServices.framework types and imports.
130830fdc8d8SChris Lattner
130930fdc8d8SChris Lattner2008-02-05  Jason Molenda  ([email protected])
131030fdc8d8SChris Lattner
131130fdc8d8SChris Lattner	* RNBRemote.cpp (set_logging): Remove the mode=file and filename=
131230fdc8d8SChris Lattner	options to the QSetLogging packet.  We're only going to support logging
131330fdc8d8SChris Lattner	to ASL for now.  Logging to a file can still be accomplished by the
131430fdc8d8SChris Lattner	-l command line argument.
131530fdc8d8SChris Lattner
131630fdc8d8SChris Lattner2008-02-02  Christopher Friesen  ([email protected])
131730fdc8d8SChris Lattner
131830fdc8d8SChris Lattner        * Added libXcodeDebugerSupport.dylib target
131930fdc8d8SChris Lattner        * XCDebuggerIntrospection.[hc]: Support for Xcode's debugger introspection.
132030fdc8d8SChris Lattner
132130fdc8d8SChris Lattner2008-02-01  Jason Molenda  ([email protected])
132230fdc8d8SChris Lattner
132330fdc8d8SChris Lattner	* DNBLog.cpp (DNBLogCloseLogFile): New function to close a logfile
132430fdc8d8SChris Lattner	at exit.
132530fdc8d8SChris Lattner	* DNBLog.h: Prototype.
132630fdc8d8SChris Lattner	* test-remotenub.cpp (main): Close the log file before exiting.
132730fdc8d8SChris Lattner
132830fdc8d8SChris Lattner2008-02-01  Jason Molenda  ([email protected])
132930fdc8d8SChris Lattner
133030fdc8d8SChris Lattner	* RNBRemote.cpp (set_logging): Recognize the "filename=" argument
133130fdc8d8SChris Lattner	to the QSetLogging directive.
133230fdc8d8SChris Lattner	* DNBLog.cpp (DNBLogGetLogMask): New fun.c
133330fdc8d8SChris Lattner	* DNBLog.h: Prototype.
133430fdc8d8SChris Lattner
133530fdc8d8SChris Lattner2008-01-31  Jason Molenda  ([email protected])
133630fdc8d8SChris Lattner
133730fdc8d8SChris Lattner	* DNBLog.cpp: Add ASL logging as a run-time selectable option.
133830fdc8d8SChris Lattner	(DNBLogToASL, DNBLogToFile): Functions to switch between logging to
133930fdc8d8SChris Lattner	a file and logging via ASL.
134030fdc8d8SChris Lattner	* DNBLog.h: Prototypes.
134130fdc8d8SChris Lattner	* RNBRemote.cpp (set_logging): Recognize the "mode=" field to enable
134230fdc8d8SChris Lattner	asl logging.  Skip unrecognized keys.
134330fdc8d8SChris Lattner
134430fdc8d8SChris Lattner2008-01-31  Greg Clayton  ([email protected])
134530fdc8d8SChris Lattner
134630fdc8d8SChris Lattner	* DNB.cpp (sigchld_handler): Better logging when we get a
134730fdc8d8SChris Lattner	SIGCHILD and we are watching for process related logging events.
134830fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopInferiorExecuting): Only reset
134930fdc8d8SChris Lattner	events when we still have event bits set.
135030fdc8d8SChris Lattner
135130fdc8d8SChris Lattner2008-01-29  Jason Molenda  ([email protected])
135230fdc8d8SChris Lattner
135330fdc8d8SChris Lattner	* RNBRemote.h: Add set_logging_mode.
135430fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize
135530fdc8d8SChris Lattner	QSetLogging.
135630fdc8d8SChris Lattner
135730fdc8d8SChris Lattner2008-01-29  Jason Molenda  ([email protected])
135830fdc8d8SChris Lattner
135930fdc8d8SChris Lattner	* RNBRemote.cpp (set_logging): New function to parse the QSetLogging
136030fdc8d8SChris Lattner	packet.
136130fdc8d8SChris Lattner	(RNBRemote::HandlePacket_Q): Call it.
136230fdc8d8SChris Lattner
136330fdc8d8SChris Lattner2008-01-28  Jason Molenda  ([email protected])
136430fdc8d8SChris Lattner
136530fdc8d8SChris Lattner	* RNBRemote.h: Minimal packet size is 1024 in our gdb now.
136630fdc8d8SChris Lattner	* RNBRemote.cpp: Add the stop_pc value in big-endian order to the
136730fdc8d8SChris Lattner	T response packet to make it a little easier to follow where gdb
136830fdc8d8SChris Lattner	is stepping.
136930fdc8d8SChris Lattner
137030fdc8d8SChris Lattner2008-01-28  Greg Clayton  <[email protected]>
137130fdc8d8SChris Lattner
137230fdc8d8SChris Lattner	* RNBContext.h: Removed m_pid_state from RNBContext class so that
137330fdc8d8SChris Lattner	it couldn't get out of sync with the actual process and its accessors
137430fdc8d8SChris Lattner	SetProcessState() and GetProcessState().
137530fdc8d8SChris Lattner	* RNBContext.cpp (RNBContext::ProcessStateRunning): Always return the
137630fdc8d8SChris Lattner	current state of the process instead of a cached value.
137730fdc8d8SChris Lattner	* test-remotenub.cpp (RNBRunLoopLaunchInferior): Remove call to
137830fdc8d8SChris Lattner        deprecated RNBContext::SetProcessState().
137930fdc8d8SChris Lattner	(HandleProcessStateChange): Ditto.
138030fdc8d8SChris Lattner
138130fdc8d8SChris Lattner2008-01-24  Greg Clayton  ([email protected])
138230fdc8d8SChris Lattner
138330fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with
138430fdc8d8SChris Lattner	"qSymbol" (no trailing "s") and return the empty string.
138530fdc8d8SChris Lattner
138630fdc8d8SChris Lattner2008-01-24  Greg Clayton  ([email protected])
138730fdc8d8SChris Lattner
138830fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_q): See if command starts with
138930fdc8d8SChris Lattner	"qSymbols" and return the empty string.
139030fdc8d8SChris Lattner
139130fdc8d8SChris Lattner2008-01-24  Greg Clayton  ([email protected])
139230fdc8d8SChris Lattner
139330fdc8d8SChris Lattner	* DNBError.h (DNBError::DumpIfError): Removed prototype.
139430fdc8d8SChris Lattner	* DNBError.cpp (DNBError::DumpIfError): Removed function.
139530fdc8d8SChris Lattner	(DNBError::LogThreadedIfError): Output error as hex.
139630fdc8d8SChris Lattner	* MachException.cpp (MachException::Message::Receive): Don't use
139730fdc8d8SChris Lattner	DNBError::DumpIfError, now use DNBError::LogThreadedIfError.
139830fdc8d8SChris Lattner	* MachProcess.cpp (MachProcess::StartExceptionThread): Ditto.
139930fdc8d8SChris Lattner 	(MachProcess::Suspend): Ditto.
140030fdc8d8SChris Lattner	(MachProcess::SBForkChildForPTraceDebugging): Ditto.
140130fdc8d8SChris Lattner	* MachVMMemory.cpp (MachVMMemory::Read): Cleaned up logging
140230fdc8d8SChris Lattner	calls.
140330fdc8d8SChris Lattner	(MachVMMemory::Write): Ditto.
140430fdc8d8SChris Lattner	(MachVMMemory::WriteRegion): Added logging.
140530fdc8d8SChris Lattner	* RNBContenxt.cpp (display_thread_info): Removed function.
140630fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::GetPacket): Commented out stderr
140730fdc8d8SChris Lattner	messages to avoid SpringBoard from killing us.
140830fdc8d8SChris Lattner	(RNBRemote::HandlePacket_p): Ditto.
140930fdc8d8SChris Lattner	(RNBRemote::HandlePacket_P): Ditto.
141030fdc8d8SChris Lattner	(RNBRemote::HandlePacket_c): Ditto.
141130fdc8d8SChris Lattner	(RNBRemote::HandlePacket_A): Removed code that was already
141230fdc8d8SChris Lattner	* RNBSocket.cpp (RNBSocket::Listen): Commented out stdout
141330fdc8d8SChris Lattner	messages to avoid SpringBoard from killing us.
141430fdc8d8SChris Lattner	(RNBSocket::ConnectToService): Ditto.
141530fdc8d8SChris Lattner
141630fdc8d8SChris Lattner2008-01-24  Jim Ingham  <[email protected]>
141730fdc8d8SChris Lattner
141830fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_q): Reply "" to qSymbols
141930fdc8d8SChris Lattner	and qOffsets.
142030fdc8d8SChris Lattner
142130fdc8d8SChris Lattner2008-01-23  Jason Molenda  ([email protected])
142230fdc8d8SChris Lattner
142330fdc8d8SChris Lattner	* RNBRemote.h: m_noack_mode to RNBRemote class.
142430fdc8d8SChris Lattner	* RNBRemote.cpp: Change #ifdef NO_ACKS code blocks
142530fdc8d8SChris Lattner	to use m_noack_mode instance variable.
142630fdc8d8SChris Lattner	(RNBRemote::HandlePacket_Q): New function to handle
142730fdc8d8SChris Lattner	QStartNoAckMode packet and set m_noack_mode appropriately.
142830fdc8d8SChris Lattner	* test-remotenub.cpp: Remove NO_ACKS ifdefs.
142930fdc8d8SChris Lattner
143030fdc8d8SChris Lattner2008-01-22  Jason Molenda  ([email protected])
143130fdc8d8SChris Lattner
143230fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::CreatePacketTable): Recognize
143330fdc8d8SChris Lattner	QStartNoAckMode as an unsupported remote protocol request.
143430fdc8d8SChris Lattner	* RNBRemote.h: Add start_noack_mode enum entry.
143530fdc8d8SChris Lattner
143630fdc8d8SChris Lattner2008-01-22  Greg Clayton  ([email protected])
143730fdc8d8SChris Lattner
143830fdc8d8SChris Lattner	* DNBLog.h: Removed C++ namespace for DNBLog (changed all DNBLog::
143930fdc8d8SChris Lattner	to DNBLog) so C99 var arg macros can be used to completely disable
144030fdc8d8SChris Lattner	all logging and any functions that may be called when making the
144130fdc8d8SChris Lattner	variable arguments.
144230fdc8d8SChris Lattner	* DNBLog.cpp: Ditto.
144330fdc8d8SChris Lattner	* DNB.cpp: Ditto.
144430fdc8d8SChris Lattner	* DNBBreakpoint.cpp: Ditto.
144530fdc8d8SChris Lattner	* DNBError.cpp: Ditto.
144630fdc8d8SChris Lattner	* MacOSX/MachDYLD.cpp: Ditto.
144730fdc8d8SChris Lattner	* MacOSX/MachException.cpp: Ditto.
144830fdc8d8SChris Lattner	* MacOSX/MachProcess.cpp: Ditto.
144930fdc8d8SChris Lattner	* MacOSX/MachThread.cpp: Ditto.
145030fdc8d8SChris Lattner	* MacOSX/MachThreadList.cpp: Ditto.
145130fdc8d8SChris Lattner	* MacOSX/MachVMMemory.cpp: Ditto.
145230fdc8d8SChris Lattner	* MacOSX/MachVMRegion.cpp: Ditto.
145330fdc8d8SChris Lattner	* MacOSX/arm/DNBArchImpl.cpp: Ditto.
145430fdc8d8SChris Lattner	* MacOSX/ppc/DNBArchImpl.cpp: Ditto.
145530fdc8d8SChris Lattner	* PThreadEvent.cpp: Ditto.
145630fdc8d8SChris Lattner	* RNBContext.cpp: Ditto.
145730fdc8d8SChris Lattner	* RNBRemote.cpp: Ditto.
145830fdc8d8SChris Lattner	* RNBSocket.cpp: Ditto.
145930fdc8d8SChris Lattner	* test-remotenub.cpp: Ditto.
146030fdc8d8SChris Lattner
146130fdc8d8SChris Lattner2008-01-21  Jason Molenda  ([email protected])
146230fdc8d8SChris Lattner
146330fdc8d8SChris Lattner	* test-remotenub.cpp: Add NO_SPRINGBOARD for turning off SpringBoard
146430fdc8d8SChris Lattner	dependency ala NO_ACKS.
146530fdc8d8SChris Lattner
146630fdc8d8SChris Lattner2008-01-18  Jason Molenda  ([email protected])
146730fdc8d8SChris Lattner
146830fdc8d8SChris Lattner	* RNBSocket.h (RNBSocket::RNBSocket): Take either a port # or
146930fdc8d8SChris Lattner	an already-opened socket, with a boolean to indicate which it is.
147030fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::RNBRemote): Ditto.
147130fdc8d8SChris Lattner	* RNBRemote.h: Prototype update.
147230fdc8d8SChris Lattner	* test-remotenub.cpp: Include lockdown.h.  Take --lockdown command
147330fdc8d8SChris Lattner	line arg, get the socket from liblockdown.dylib instead of opening
147430fdc8d8SChris Lattner	our own socket if it is specified.  --lockdown indicates that
147530fdc8d8SChris Lattner	the program name/args will be provided via remote protocol instead
147630fdc8d8SChris Lattner	of on the command line.
147730fdc8d8SChris Lattner
147830fdc8d8SChris Lattner2008-01-17  Jason Molenda  ([email protected])
147930fdc8d8SChris Lattner
148030fdc8d8SChris Lattner	* RNBRemote.cpp: Add NO_ACKS #ifdefs around code that computes
148130fdc8d8SChris Lattner	the checksums and sends/expects the gdb remote protocol ACK packets.
148230fdc8d8SChris Lattner	If NO_ACKS is defined, debugserver will not send or expect acks.
148330fdc8d8SChris Lattner	* test-remotenub.cpp (main): Print a different version string
148430fdc8d8SChris Lattner	if NO_ACKS is defined.
148530fdc8d8SChris Lattner
148630fdc8d8SChris Lattner2008-01-16  Greg Clayton  ([email protected])
148730fdc8d8SChris Lattner
148830fdc8d8SChris Lattner	* PThreadEvent.cpp: Added this pointer to all logging calls.
148930fdc8d8SChris Lattner
149030fdc8d8SChris Lattner2008-01-16  Greg Clayton  ([email protected])
149130fdc8d8SChris Lattner
149230fdc8d8SChris Lattner	* RNBSocket.cpp (RNBSocket::Connect()): Use TCP so we can try the
149330fdc8d8SChris Lattner	TCP_NODELAY socket option.
149430fdc8d8SChris Lattner	(RNBSocket::SetSocketOption()): New function.
149530fdc8d8SChris Lattner	* RNBSocket.h (RNBSocket::SetSocketOption()): New class function.
149630fdc8d8SChris Lattner
149730fdc8d8SChris Lattner2008-01-14  Jason Molenda  ([email protected])
149830fdc8d8SChris Lattner
149930fdc8d8SChris Lattner	* RNBRemote.cpp (RNBRemote::HandlePacket_last_signal): When printing
150030fdc8d8SChris Lattner	registers, skip over gdb regs which don't map to DNB regs.
150130fdc8d8SChris Lattner
150230fdc8d8SChris Lattner2008-01-14  Jim Ingham  <[email protected]>
150330fdc8d8SChris Lattner
150430fdc8d8SChris Lattner    * ChangeLog - created.
150530fdc8d8SChris Lattner    * RBNContext.h: Added m_arg_vec and accessors.
150630fdc8d8SChris Lattner    * RNBContext.cpp (SetProcessID): New function.
150730fdc8d8SChris Lattner    * RBNRemote.h: Added packet type to HandlePacket & HandleAsyncPacket
150830fdc8d8SChris Lattner    * RNBRemote.cpp (HandlePacket, HandleAsyncPacket): Return type.
150930fdc8d8SChris Lattner    (HandlePacket_A): Fix a few bugs.
151030fdc8d8SChris Lattner    (HandlePacket_H): Return OK if target is not yet running.
151130fdc8d8SChris Lattner    (HandlePacket_q): Return PID of 0 if target is not yet running.
151230fdc8d8SChris Lattner    * testremotenub.cpp (RNBRunLoopGetArgsFromRemote): Implement.
151330fdc8d8SChris Lattner    (RNBRunLoopLaunchInferior): Fetch arguments from context.
151430fdc8d8SChris Lattner    (main) Store arguments in context, call RNBRunLoopGetArgsFromRemote
151530fdc8d8SChris Lattner    if appropriate.
1516