Community
Participate
Working Groups
We have very big C++ vxworks kernel module (300Mb) from a customer. This kernel module is not fully linked and so it contains lots of sections and lots of relocation entries (more than 4 millions). VxWorks can load this module dynamically. But in that case, the symbol file / debug info parser of the TCF agent takes several minutes (20 minutes) to load the symbol file and to process all the debug info. I think the issue relies on the tons of address ranges the code and to relocate and the huge amount of relocations to handle: for *each* address to relocate, the agent has to look within the 4 million of relocations to found the correct one. Moreover, during the load of the file, the agent does not answer any request, as the load occurs on the dispatch thread. As the test case is a customer application, we can share it.
The issue has been fixed by the commit: commit b6dbf57ef1a81be9bef809286a9378711cb28fdd Author: Eugene Tarassov <eugene.tarassov@xilinx.com> Date: Fri Mar 14 20:24:27 2014 -0700 TCF Agent: improved speed of DWARF relocations Now the load of the module takes less than 10s, and debug info retrieval (symbols or line info) takes less than 5s.
Guys, this is AWSOME !!! Big Thanks to Eugene for fixing this -- and to Benoit for finding the issue.