|author||eutarass||2009-07-02 21:44:24 +0000|
|committer||eutarass||2009-07-02 21:44:24 +0000|
|tree||2788e0942fd26722e79da201ca62b14944f19e56 /docs/TCF Agent Porting Guide.html|
More of TCF Agent Porting Guide
Diffstat (limited to 'docs/TCF Agent Porting Guide.html')
|-rw-r--r--||docs/TCF Agent Porting Guide.html||41|
1 files changed, 40 insertions, 1 deletions
diff --git a/docs/TCF Agent Porting Guide.html b/docs/TCF Agent Porting Guide.html
index 747890e5e..8446eaf0a 100644
--- a/docs/TCF Agent Porting Guide.html
+++ b/docs/TCF Agent Porting Guide.html
@@ -35,6 +35,9 @@
<a href='#NewDebugData'>Adding Support For a New Debug Data Format</a>
+ <a href='#NewTransport'>Adding Support For a New Communication Trasport</a>
@@ -191,9 +194,37 @@
+ For source level debugging TCF agent needs to understand executable file format.
+ Source level debugging is supported by providing two services: Symbols and Line Numbers.
+ The services are optional, and if they are disabled no support for executable file format is needed.
+ At this time the agent supports <a href='http://en.wikipedia.org/wiki/Executable_and_Linkable_Format'>ELF (Executable and Linking Format)</a>
+ and <a href='http://en.wikipedia.org/wiki/Portable_Executable'>PE (Portable Executable)</a> files.
+ ELF is very popular format in Unix-like and embedded systems, and PE is used in Windows operating systems.
+ ELF supported in the agent is developed from scratch, has no external dependences, and is available in source form as part of the agent source code.
+ The code might require changes to support a particular flavor of ELF.
+ Probably the most tricky part of the code is interface to the system loader.
+ The agent needs to know when an ELF file is loaded into or removed from target memory so it can update symbol tables and breakpoints.
+ For that it plants an internal (not visible to clients) breakpoint (aka eventpoint) inside system loader code.
+ The breakpoint allows agent to intercept control every time an ELF file is loaded or unloaded.
+ PE support in the agent is implemented by using DBGHELP.DLL. This DLL is included in Windows operating system.
+ However, older versions of the DLL might not provide all necessary functionality.
+ To obtain the latest version of DBGHELP.DLL, go to <a href='http://www.microsoft.com/whdc/devtools/debugging/default.mspx'>
+ http://www.microsoft.com/whdc/devtools/debugging/default.mspx</a> and download Debugging Tools for Windows.
+ Support for a completely new file format would require to develop alternative versions of symbols_xxx.c and linenumbers_xxx.c files.
+ See <a href='http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/agent/symbols_elf.c'>symbols_elf.c</a>
+ and <a href='http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/agent/linenumbers_elf.c'>linenumbers_elf.c</a>
+ as example implementation of the services.
<a name='NewDebugData'>Adding Support For a New Debug Data Format</a>
@@ -202,5 +233,13 @@
+ <a name='NewTransport'>Adding Support For a New Communication Transport</a>