Copyright (c) 2007 Wind River Systems, Inc. Made available under the EPL v1.0
Direct comments, questions to the tcf-dev@eclipse.org mailing list
Version | Date | Change |
---|---|---|
0.1 | 2008-01-10 | Initial contribution |
1.0 | 2008-05-06 | Approved |
1.1 | 2008-06-25 | Enhanced error reporting format, see Bug 232410 |
TCF communication model is based on the idea of services. A service is a group of related commands, events and semantics. For example, Memory Service defines group of command and events for reading and writing target memory. Service definitions are not part of the framework specification, and new services are expected to be defined by developers of tools and target agents. Defenitions of standard services are provided to achieve certain level of compatibility between tools and targets.
Format of the protocol messages is defined by syntax rules. Syntax is described using a simple variant of Backus-Naur Form. In particular:
<chars> ⇒ <char> ⇒ <chars> <char>
Most of TCF standard services use same format for error reporting:
<error report> ⇒ ⇒ null ⇒ <object: error description>
Empty or null error report means success. Error description provides error details, including error code and a short, localizable, human readable explanation of the error.
Error description properties are:
All fields except "Code" are optional.
Standard error codes:
OTHER = 1
JSON_SYNTAX = 2
PROTOCOL = 3
BUFFER_OVERFLOW = 4
CHANNEL_CLOSED = 5
COMMAND_CANCELLED = 6
UNKNOWN_PEER = 7
BASE64 = 8
EOF = 9
ALREADY_STOPPED = 10
ALREADY_EXITED = 11
ALREADY_RUNNING = 12
ALREADY_ATTACHED = 13
IS_RUNNING = 14
INV_DATA_SIZE = 15
INV_CONTEXT = 16
INV_ADDRESS = 17
INV_EXPRESSION = 18
INV_FORMAT = 19
INV_NUMBER = 20
INV_DWARF = 21
SYM_NOT_FOUND = 22
UNSUPPORTED = 23
INV_DATA_TYPE = 24
INV_COMMAND = 25
Service specific error code definitions, if any, are part of service specfications. Standard and service specific error codes can be extended over time. A client that does not recognize a specific error code should treat it in the same way as "OTHER".
For encoding of <object>, <string>, etc., see JSON - Preferred Marshaling.