reading profile information

Aleksandar Dragojevic aleksandar_dragojevic@yahoo.co.uk
Mon Jan 31 10:19:00 GMT 2005


Hello

I am trying to make execution record / replay debugger for custom threading 
library. Debugger is an extension to gdb. Everything is running on i386 / 
Linux platform. Newer versions of gcc are used (3.2+).

What I need is to save execution state whenever signal occurs, so I can know 
when to deliver signals in replay runs. In older versions of gcc there 
was -a command line option which would be suitable for my needs. In new 
versions this option was replaced with -fprofile-arcs. I could achieve what 
I need if I could read profile information (arc counts) from executing 
program. It would be enough to read only counts in deterministic order (I 
don't need any other basic block information or anything else). I hope this 
make sense.

What I saw from disassembly of a program compiled with -fprofile-arcs is 
that some 64 bits ints are incremented on calls, jumps etc (these are the 
counters I need). Debugger is reporting that they are relative to variable 
completed.1. Also I saw new (compared to disassembly of same program 
compiled without -fprofile-arcs) variable bb_head which points to a location 
reported to be relative to variable p.0.

Any help is appreciated.

Aleksandar 



More information about the Gcc-help mailing list