]> src.bluestatic.org Git - macgdbp.git/log
macgdbp.git
9 years agoMerge branch 'message-queue' into debugger-back-end
Robert Sesek [Sat, 24 Oct 2015 06:38:37 +0000 (02:38 -0400)]
Merge branch 'message-queue' into debugger-back-end

9 years agoStop spamming the CPU with -[MessageQueue dequeueAndSendBlocks]. message-queue
Robert Sesek [Sat, 24 Oct 2015 06:33:44 +0000 (02:33 -0400)]
Stop spamming the CPU with -[MessageQueue dequeueAndSendBlocks].

This significantly uses CPU usage by suspending the write dispatch source until
a message comes in.

9 years agoEnsure that stack frames are loaded when the array controller selection changes.
Robert Sesek [Sat, 24 Oct 2015 05:49:16 +0000 (01:49 -0400)]
Ensure that stack frames are loaded when the array controller selection changes.

This also makes the array controller not attempt to preserve the selection.

9 years agoMove management of the stack to DebuggerModel.
Robert Sesek [Sat, 24 Oct 2015 05:23:38 +0000 (01:23 -0400)]
Move management of the stack to DebuggerModel.

This deletes the old StackController and adds a new method
-[DebuggerModel updateStack:] that updates the array, attempting to preserve
identical stack frames.

A new target MacGDBp-Tests is also added, for testing the new DebuggerModel
functionality.

9 years agoIntroduce DebuggerModel, which will be updated by the BackEnd.
Robert Sesek [Mon, 12 Oct 2015 00:05:58 +0000 (20:05 -0400)]
Introduce DebuggerModel, which will be updated by the BackEnd.

This changes the debugger status message to be updated by the new Model class.
The XIB file is also re-saved as a Xcode 7 file.

9 years agoRemove stackFirstTransactionID_ tracking from DebuggerBackEnd.
Robert Sesek [Sun, 11 Oct 2015 20:30:37 +0000 (16:30 -0400)]
Remove stackFirstTransactionID_ tracking from DebuggerBackEnd.

9 years agoClean up EvalController by using a callback in -[DebuggerBackEnd evalScript:callback:].
Robert Sesek [Sun, 11 Oct 2015 17:46:09 +0000 (13:46 -0400)]
Clean up EvalController by using a callback in -[DebuggerBackEnd evalScript:callback:].

9 years agoClean up DebuggerBackEnd and move all the ivars into the .m file.
Robert Sesek [Sun, 11 Oct 2015 17:38:17 +0000 (13:38 -0400)]
Clean up DebuggerBackEnd and move all the ivars into the .m file.

9 years agoUpdate StackFrame for ObjC 2.
Robert Sesek [Sat, 10 Oct 2015 21:30:07 +0000 (17:30 -0400)]
Update StackFrame for ObjC 2.

9 years agoRemove StackFrame.routingID.
Robert Sesek [Sat, 10 Oct 2015 17:41:26 +0000 (13:41 -0400)]
Remove StackFrame.routingID.

9 years agoRemove the old callTable_ system from DebuggerBackEnd.
Robert Sesek [Sat, 10 Oct 2015 16:59:50 +0000 (12:59 -0400)]
Remove the old callTable_ system from DebuggerBackEnd.

ProtocolClient is now responsible for dispatching blocks for response messages.

9 years agoRewrite stack building in DebuggerBackEnd.
Robert Sesek [Sat, 10 Oct 2015 16:53:33 +0000 (12:53 -0400)]
Rewrite stack building in DebuggerBackEnd.

9 years agoRefactor -[DebuggerController fetchChildProperties:].
Robert Sesek [Sat, 10 Oct 2015 16:40:56 +0000 (12:40 -0400)]
Refactor -[DebuggerController fetchChildProperties:].

9 years agoReplace -[ProtocolClient sendCustomCommandWithFormat:...] with a block-based
Robert Sesek [Sat, 10 Oct 2015 16:29:28 +0000 (12:29 -0400)]
Replace -[ProtocolClient sendCustomCommandWithFormat:...] with a block-based
version.

9 years agoRewrite parts of DebuggerBackEnd to use the new block-based ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 16:16:58 +0000 (12:16 -0400)]
Rewrite parts of DebuggerBackEnd to use the new block-based ProtocolClient.

This removes the need for callbackContext_.

9 years agoAdd a block-based -sendCommand... variant to ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 15:47:42 +0000 (11:47 -0400)]
Add a block-based -sendCommand... variant to ProtocolClient.

This starts making ProtocolClient responsible for dispatching debugger messages.

9 years agoRemove unnecessary ivars from ProtocolClient.
Robert Sesek [Sat, 10 Oct 2015 14:41:12 +0000 (10:41 -0400)]
Remove unnecessary ivars from ProtocolClient.

9 years agoStop logging transaction validation information.
Robert Sesek [Sat, 10 Oct 2015 14:33:01 +0000 (10:33 -0400)]
Stop logging transaction validation information.

9 years agoShort-circuit -[MessageQueue disconnectClient] if not connected.
Robert Sesek [Sat, 10 Oct 2015 14:32:13 +0000 (10:32 -0400)]
Short-circuit -[MessageQueue disconnectClient] if not connected.

9 years agoUpdate xcodeproj to build with latest OS X SDK.
Robert Sesek [Sat, 10 Oct 2015 05:19:25 +0000 (01:19 -0400)]
Update xcodeproj to build with latest OS X SDK.

9 years agoCleanup from the MessageQueue rewrite.
Robert Sesek [Sat, 10 Oct 2015 05:15:51 +0000 (01:15 -0400)]
Cleanup from the MessageQueue rewrite.

9 years agoRewrite MessageQueue to use libdispatch instead of CFStream and a dedicated thread.
Robert Sesek [Sat, 10 Oct 2015 03:18:37 +0000 (23:18 -0400)]
Rewrite MessageQueue to use libdispatch instead of CFStream and a dedicated thread.

9 years agoFix nil host replacement.
Robert Sesek [Sun, 21 Jun 2015 18:44:40 +0000 (14:44 -0400)]
Fix nil host replacement.

9 years agoInvalidate and release the listening socket in -[MessageQueue disconnectClient].
Robert Sesek [Mon, 18 May 2015 12:22:35 +0000 (08:22 -0400)]
Invalidate and release the listening socket in -[MessageQueue disconnectClient].

The socket could be leaked (and not re-openable) if it never accepted a
connection but was told to -disconnect.

9 years agoFix potential crash when detaching and reattaching.
Robert Sesek [Mon, 18 May 2015 12:20:28 +0000 (08:20 -0400)]
Fix potential crash when detaching and reattaching.

Waiting via sleep() in -[MessageQueue scheduleListenSocket] will ignore any
disconnect messages, since the run loop is not being serviced. Instead, wait by
pumping the loop.

9 years agoBump the SDK to 10.9.
Robert Sesek [Sun, 17 May 2015 19:07:15 +0000 (15:07 -0400)]
Bump the SDK to 10.9.

9 years agoRemove unused -[ProtocolClient shouldSendMessage].
Robert Sesek [Sun, 17 May 2015 19:06:56 +0000 (15:06 -0400)]
Remove unused -[ProtocolClient shouldSendMessage].

10 years agoMinimum target of 10.6 and 64-bit.
Robert Sesek [Thu, 5 Jun 2014 05:09:00 +0000 (01:09 -0400)]
Minimum target of 10.6 and 64-bit.

10 years agoDo not double-percent-escape the filename.
Robert Sesek [Sun, 30 Mar 2014 17:18:38 +0000 (13:18 -0400)]
Do not double-percent-escape the filename.

10 years agoRemove the thin layer around ProtocolClient that is NetworkConnection.
Robert Sesek [Thu, 2 Jan 2014 02:50:10 +0000 (21:50 -0500)]
Remove the thin layer around ProtocolClient that is NetworkConnection.

11 years agoReport stream errors from MessageQueue.
Robert Sesek [Wed, 3 Jul 2013 23:32:22 +0000 (19:32 -0400)]
Report stream errors from MessageQueue.

11 years agoWrite BSProtocolThreadInvoker to replace ThreadSafeDelegate.
Robert Sesek [Wed, 3 Jul 2013 23:14:09 +0000 (19:14 -0400)]
Write BSProtocolThreadInvoker to replace ThreadSafeDelegate.

This class protects against reentrancy, which happens when AppKit uses WebKit
on the main thread for NSAttributedString.

11 years agoConnect ProtocolClient to the LoggingController.
Robert Sesek [Fri, 28 Jun 2013 02:16:02 +0000 (22:16 -0400)]
Connect ProtocolClient to the LoggingController.

This also removes the error property from LogEntry, since it was always unused.

11 years agoImprove MessageQueueDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:24:51 +0000 (22:24 -0400)]
Improve MessageQueueDelegate.

11 years agoCall -[NSInvocation retainArguments] in ThreadSafeDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:16:59 +0000 (22:16 -0400)]
Call -[NSInvocation retainArguments] in ThreadSafeDelegate.

11 years agoRename NetworkConnection to not be ObjC++
Robert Sesek [Thu, 20 Jun 2013 02:12:03 +0000 (22:12 -0400)]
Rename NetworkConnection to not be ObjC++

11 years agoConvert MessageQueue to use a ThreadSafeDelegate.
Robert Sesek [Thu, 20 Jun 2013 02:11:29 +0000 (22:11 -0400)]
Convert MessageQueue to use a ThreadSafeDelegate.

11 years agoWrite a ThreadSafeDelegate implementation, which will be used by MessageQueue.
Robert Sesek [Thu, 20 Jun 2013 02:05:32 +0000 (22:05 -0400)]
Write a ThreadSafeDelegate implementation, which will be used by MessageQueue.

11 years agoAttempt to send after successfully reading a message.
Robert Sesek [Tue, 18 Jun 2013 23:45:54 +0000 (19:45 -0400)]
Attempt to send after successfully reading a message.

11 years agoWhen the MessageQueue disconnects, release it in ProtocolClient.
Robert Sesek [Tue, 18 Jun 2013 23:33:34 +0000 (19:33 -0400)]
When the MessageQueue disconnects, release it in ProtocolClient.

11 years agoFix a silly memory bug where MessageQueue._message was autoreleased.
Robert Sesek [Tue, 18 Jun 2013 23:33:19 +0000 (19:33 -0400)]
Fix a silly memory bug where MessageQueue._message was autoreleased.

11 years agoFix use-after-free by not removing the dequeued message until after it is sent.
Robert Sesek [Tue, 18 Jun 2013 05:50:05 +0000 (01:50 -0400)]
Fix use-after-free by not removing the dequeued message until after it is sent.

11 years agoPerform -postReceivedMessage: only in the default mode.
Robert Sesek [Tue, 18 Jun 2013 05:49:18 +0000 (01:49 -0400)]
Perform -postReceivedMessage: only in the default mode.

11 years agoProtocolClient was both a superclass and a member. Fix.
Robert Sesek [Tue, 18 Jun 2013 05:44:55 +0000 (01:44 -0400)]
ProtocolClient was both a superclass and a member. Fix.

11 years agoUse the correct socket for CFStreamCreatePairWithSocket.
Robert Sesek [Tue, 18 Jun 2013 05:40:00 +0000 (01:40 -0400)]
Use the correct socket for CFStreamCreatePairWithSocket.

And some minor message passing cleanup.

11 years agoGut the old NetworkConnection and NetworkCallbackController classes.
Robert Sesek [Tue, 18 Jun 2013 05:21:05 +0000 (01:21 -0400)]
Gut the old NetworkConnection and NetworkCallbackController classes.

The old API will bridge to the new ProtocolClient until the callers can be
updated.

11 years agoWrite ProtocolClient, the layer that talks XML on top of a MessageQueue.
Robert Sesek [Tue, 18 Jun 2013 05:05:46 +0000 (01:05 -0400)]
Write ProtocolClient, the layer that talks XML on top of a MessageQueue.

This is the other piece of the split NetworkConnection class.

11 years agoWrite MessageQueue to replace most NetworkCallbackController.
Robert Sesek [Tue, 18 Jun 2013 02:29:10 +0000 (22:29 -0400)]
Write MessageQueue to replace most NetworkCallbackController.

This refactors pieces of NetworkConnection and NetworkCallbackController into
a simpler class that merely deals with sequenced strings over a socket.

11 years agoUpdate the comments in NetworkCallbackController::WriteString
Robert Sesek [Sun, 16 Jun 2013 05:19:46 +0000 (01:19 -0400)]
Update the comments in NetworkCallbackController::WriteString

11 years agoReplace deprecated -compositeToPoint:operation: call.
Robert Sesek [Sun, 16 Jun 2013 03:16:39 +0000 (23:16 -0400)]
Replace deprecated -compositeToPoint:operation: call.

11 years agoFix 64-bit Debug builds.
Robert Sesek [Sun, 16 Jun 2013 03:12:13 +0000 (23:12 -0400)]
Fix 64-bit Debug builds.

11 years agoDelete some obsolete Xcode project settings.
Robert Sesek [Sun, 16 Jun 2013 01:45:41 +0000 (21:45 -0400)]
Delete some obsolete Xcode project settings.

11 years agoRewrite NetworkCallbackController::WriteString to actually deal in bytes properly.
Robert Sesek [Sun, 16 Jun 2013 00:27:37 +0000 (20:27 -0400)]
Rewrite NetworkCallbackController::WriteString to actually deal in bytes properly.

11 years agoSwitch to using the 10.8 SDK with a 10.5 deployment target.
Robert Sesek [Sun, 16 Jun 2013 00:05:28 +0000 (20:05 -0400)]
Switch to using the 10.8 SDK with a 10.5 deployment target.

12 years agoFix a somewhat serious bug in the WriteString loop.
Robert Sesek [Tue, 11 Sep 2012 04:20:34 +0000 (00:20 -0400)]
Fix a somewhat serious bug in the WriteString loop.

memmove was being performed on |string|, which is an NSString. The proper variable
to operate on is |cString|. But even then, that's not correct because the
destination buffer is not owned. Use pointer arithmetic instead.

12 years agoMove out of 1.5 beta to stable, and update the copyright years. 1.5 1.5.0.104
Robert Sesek [Mon, 3 Sep 2012 01:12:54 +0000 (21:12 -0400)]
Move out of 1.5 beta to stable, and update the copyright years.

12 years agoMake the eval result scrollable
Robert Sesek [Mon, 3 Sep 2012 01:11:45 +0000 (21:11 -0400)]
Make the eval result scrollable

12 years agoUpdate CHANGES after f3ac43beef7fddf2c4c9839e4429fcddc6b92465
Robert Sesek [Mon, 3 Sep 2012 01:01:47 +0000 (21:01 -0400)]
Update CHANGES after f3ac43beef7fddf2c4c9839e4429fcddc6b92465

12 years agoFix Bug #236 which caused freeze on OS X 10.8
Sam Fleming [Mon, 13 Aug 2012 12:46:57 +0000 (13:46 +0100)]
Fix Bug #236 which caused freeze on OS X 10.8

13 years agoAdd an Evaluate menu item to the Debugger menu
Robert Sesek [Mon, 30 May 2011 15:56:46 +0000 (11:56 -0400)]
Add an Evaluate menu item to the Debugger menu

13 years agoCreate a new icon for the Eval toolbar item
Robert Sesek [Mon, 30 May 2011 15:54:20 +0000 (11:54 -0400)]
Create a new icon for the Eval toolbar item

13 years agoHave the EvalWindow autosave its frame
Robert Sesek [Mon, 30 May 2011 15:41:19 +0000 (11:41 -0400)]
Have the EvalWindow autosave its frame

13 years agoRemove two manual invocations of |-debuggerDisconnected| now that socket shutdown...
Robert Sesek [Mon, 30 May 2011 02:23:35 +0000 (22:23 -0400)]
Remove two manual invocations of |-debuggerDisconnected| now that socket shutdown has been redone

13 years agoAdd changelog entry
Robert Sesek [Mon, 30 May 2011 02:16:58 +0000 (22:16 -0400)]
Add changelog entry

13 years agoRemove testing code from CloseConnection()
Robert Sesek [Mon, 30 May 2011 02:15:17 +0000 (22:15 -0400)]
Remove testing code from CloseConnection()

13 years agoRedo how socket shutdown works:
Robert Sesek [Mon, 30 May 2011 02:05:38 +0000 (22:05 -0400)]
Redo how socket shutdown works:
* Keep hold of the socketHandle_ from the accept callback
* close() this socket (creating a CFSocket breaks CFStreams)
* Implement -[NetworkConnectionDelegate connectionDidClose:] to reconnect if attached
* When kCFStreamEventEndEncountered is received, just go through CloseConnection(), same with kCFStreamEventErrorOccurred

13 years agoKeep track of the child socket handle and close() it properly
Robert Sesek [Mon, 30 May 2011 01:36:45 +0000 (21:36 -0400)]
Keep track of the child socket handle and close() it properly

13 years agoRename socket_ to listeningSocket_ and add CloseSocket() to help shut it down
Robert Sesek [Mon, 30 May 2011 00:53:47 +0000 (20:53 -0400)]
Rename socket_ to listeningSocket_ and add CloseSocket() to help shut it down

13 years agoIn NetworkCallbackController::WriteStreamCanAcceptBytes, check that writeStream_...
Robert Sesek [Sun, 29 May 2011 20:36:28 +0000 (16:36 -0400)]
In NetworkCallbackController::WriteStreamCanAcceptBytes, check that writeStream_ exists

13 years agoMove ownership of the read and write stream from NetworkConnection to NetworkCallback...
Robert Sesek [Sun, 29 May 2011 20:31:47 +0000 (16:31 -0400)]
Move ownership of the read and write stream from NetworkConnection to NetworkCallbackController

13 years agoUpdate graph a little
Robert Sesek [Mon, 2 May 2011 01:02:12 +0000 (21:02 -0400)]
Update graph a little

13 years agoGroup the step commands and their box
Robert Sesek [Sun, 1 May 2011 23:28:40 +0000 (19:28 -0400)]
Group the step commands and their box

13 years agoRemvoe dropshadows and change arrow heads in Code Flow.graffle
Robert Sesek [Sun, 1 May 2011 23:27:20 +0000 (19:27 -0400)]
Remvoe dropshadows and change arrow heads in Code Flow.graffle

13 years agoAdd start/end points and indicate optionality of edges in Code Flow.graffle
Robert Sesek [Sun, 1 May 2011 23:19:50 +0000 (19:19 -0400)]
Add start/end points and indicate optionality of edges in Code Flow.graffle

13 years agoAdd current code flow graph document
Robert Sesek [Sun, 1 May 2011 22:37:02 +0000 (18:37 -0400)]
Add current code flow graph document

13 years agoRemove the README.* files for modp_b64 from the project so they don't get copied...
Robert Sesek [Sun, 1 May 2011 20:01:03 +0000 (16:01 -0400)]
Remove the README.* files for modp_b64 from the project so they don't get copied into the bundle

13 years agoFix a warning in Preferences.xib about checkbox image scaling
Robert Sesek [Sun, 1 May 2011 18:54:44 +0000 (14:54 -0400)]
Fix a warning in Preferences.xib about checkbox image scaling

13 years agoAdd StripLineBreaksValueTransformer and use it for displaying values in the variable...
Robert Sesek [Sun, 1 May 2011 18:14:13 +0000 (14:14 -0400)]
Add StripLineBreaksValueTransformer and use it for displaying values in the variable list.

13 years agoIn |-[NSXMLElement(GDBpAdditions) base64DecodedValue]|, recursively print objects.
Robert Sesek [Sun, 1 May 2011 18:06:06 +0000 (14:06 -0400)]
In |-[NSXMLElement(GDBpAdditions) base64DecodedValue]|, recursively print objects.

This fixes #168.

13 years agoGet the base64-decoded value of the when showing evaluated script responses
Robert Sesek [Sun, 1 May 2011 17:03:35 +0000 (13:03 -0400)]
Get the base64-decoded value of the when showing evaluated script responses

13 years agoMerge branch 'eval-sheet'
Robert Sesek [Sun, 1 May 2011 16:54:08 +0000 (12:54 -0400)]
Merge branch 'eval-sheet'

13 years agoDon't use |-performClick:| to wire up the Evalute button, but use the Enter key instead
Robert Sesek [Sun, 1 May 2011 16:51:42 +0000 (12:51 -0400)]
Don't use |-performClick:| to wire up the Evalute button, but use the Enter key instead

13 years agoOnly enable the Eval window button if connected to the debugger
Robert Sesek [Sun, 1 May 2011 16:47:48 +0000 (12:47 -0400)]
Only enable the Eval window button if connected to the debugger

13 years agoUpdate ChangeLog
Robert Sesek [Sun, 1 May 2011 16:44:44 +0000 (12:44 -0400)]
Update ChangeLog

13 years ago* Rename "Evalute Code" to "Evaluate Script" in the toolbar
Robert Sesek [Sun, 1 May 2011 16:42:59 +0000 (12:42 -0400)]
* Rename "Evalute Code" to "Evaluate Script" in the toolbar
* Update all the toolbar icons to not have .png in the icon name, which makes
  the images show up in IB
* Add Evaluate to the default toolbar

13 years agoActually call the delegate method, which hooks everything up.
Robert Sesek [Sun, 1 May 2011 16:37:35 +0000 (12:37 -0400)]
Actually call the delegate method, which hooks everything up.

13 years agoAdd |-[DebuggerBackEndDelegate scriptWasEvaluatedWithResult:]| and plumb it through
Robert Sesek [Sun, 1 May 2011 16:32:33 +0000 (12:32 -0400)]
Add |-[DebuggerBackEndDelegate scriptWasEvaluatedWithResult:]| and plumb it through

13 years agoAdd -[DebuggerBackEnd evalScript:] to send the command.
Robert Sesek [Sun, 1 May 2011 16:25:35 +0000 (12:25 -0400)]
Add -[DebuggerBackEnd evalScript:] to send the command.

But the command format is atypical and has the transaction ID before the last
parameter, so also add -[NetworkConnection sendCustomCommandWithFormat:] to
support placing the transaction ID in an arbitrary place using a string
placeholder.

13 years agoXIB changes:
Robert Sesek [Sun, 1 May 2011 16:09:16 +0000 (12:09 -0400)]
XIB changes:
* Hook up resize springs
* Set font to Menlo
* Hook up the Enter key to the evaluate button

13 years agoHook up the Evaluate button
Robert Sesek [Sun, 1 May 2011 14:56:25 +0000 (10:56 -0400)]
Hook up the Evaluate button

13 years agoFix a leak by autoreleasing in the |-sheetDidEnd...|
Robert Sesek [Sat, 30 Apr 2011 23:43:44 +0000 (19:43 -0400)]
Fix a leak by autoreleasing in the |-sheetDidEnd...|

13 years agoMissing a [super dealloc] call
Robert Sesek [Sat, 30 Apr 2011 23:43:00 +0000 (19:43 -0400)]
Missing a [super dealloc] call

13 years agoHook up the EvalController and modal interface via the DebuggerController toolbar
Robert Sesek [Sat, 30 Apr 2011 23:42:24 +0000 (19:42 -0400)]
Hook up the EvalController and modal interface via the DebuggerController toolbar

13 years agoAdd the EvalController and Eval.xib
Robert Sesek [Sat, 30 Apr 2011 22:57:20 +0000 (18:57 -0400)]
Add the EvalController and Eval.xib

13 years agoTweak the PC stroke color
Robert Sesek [Fri, 29 Apr 2011 05:13:59 +0000 (01:13 -0400)]
Tweak the PC stroke color

13 years agoUse the same shape for the PC as with breakpoints
Robert Sesek [Fri, 29 Apr 2011 05:10:24 +0000 (01:10 -0400)]
Use the same shape for the PC as with breakpoints

13 years agoFix a crash caused by an uninitialized variable (bug #219) after highlighting source...
Robert Sesek [Wed, 2 Mar 2011 05:05:19 +0000 (00:05 -0500)]
Fix a crash caused by an uninitialized variable (bug #219) after highlighting source fails

13 years agoIn NetworkCallbackController::Unschedule*Stream(), don't proceed if the streams are...
Robert Sesek [Mon, 28 Feb 2011 13:45:03 +0000 (08:45 -0500)]
In NetworkCallbackController::Unschedule*Stream(), don't proceed if the streams are NULL.

13 years agoCleanup some older code in NetworkConnection.mm.
Robert Sesek [Mon, 28 Feb 2011 05:38:57 +0000 (00:38 -0500)]
Cleanup some older code in NetworkConnection.mm.

13 years agoBump the version to 1.5 Beta
Robert Sesek [Mon, 28 Feb 2011 02:58:35 +0000 (21:58 -0500)]
Bump the version to 1.5 Beta