I am working on tracing tool for complex multi-threaded distributed application ( C C++ python - running on Vxworks and Linux system )
I want to achieve :
-- Tracing for Linux( CentOS ) /Vxworks (preferably single solution for both)
-- Dynamic runtime tracing preferable without source code modification .
-- trace functions and log function names and parameters
-- Preferably trace functions per process/thread
-- Store trace data in a buffer
-- dump the trace data to file on request.
-- Provide filtering of functions based on user requirements
Perf utility can be used to record dynamic runtime traces of application.
perf record <application name>
For custom tracing a PIN tool can be designed. Explore
For most cases you don't have to develop a new pin tool. one of the pin tool in </pin-3.7/source/tool/> folder or slightly modified version of it would do the job.