Skip to main content
path: root/docs
diff options
authoreutarass2009-07-02 21:44:24 +0000
committereutarass2009-07-02 21:44:24 +0000
commit287e7a6ce393a91703e908cc9c5ff6bbe1b6d243 (patch)
tree2788e0942fd26722e79da201ca62b14944f19e56 /docs
parent41a9dd92ff48db0b874cc98d65979425b7e17d90 (diff)
More of TCF Agent Porting Guide
Diffstat (limited to 'docs')
-rw-r--r--docs/TCF Agent Porting Guide.html41
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>
+ <li>
+ <a href='#NewTransport'>Adding Support For a New Communication Trasport</a>
+ </li>
@@ -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=''>ELF (Executable and Linking Format)</a>
+ and <a href=''>PE (Portable Executable)</a> files.
+ ELF is very popular format in Unix-like and embedded systems, and PE is used in Windows operating systems.
+ </p>
+ <p>
+ 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.
+ <p>
+ 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=''>
+</a> and download Debugging Tools for Windows.
+ </p>
+ <p>
+ 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=''>symbols_elf.c</a>
+ and <a href=''>linenumbers_elf.c</a>
+ as example implementation of the services.
+ </p>
<a name='NewDebugData'>Adding Support For a New Debug Data Format</a>
@@ -202,5 +233,13 @@
+ <h2>
+ <a name='NewTransport'>Adding Support For a New Communication Transport</a>
+ </h2>
+ <p>
+ </p>

Back to the top