I run a basic task scheduler which I have written to schedule all the main tasks on my system PIC (Now running on the 18F series).

I am trying to write a debug tool to help me to see which routines are running at what rates and in what order. My task scheduler outputs to the serial port a list of the addresses currently sitting in the task list.

I am writing a VB program to display this on screen and want to translate the Hex addresses into label names which I use in the original code. At present by hand it is a laborious task to look up the address in the listing and extract its name from there. However, the Symbol table at the end of the listing does not differentiate between Constants, Variables and Subroutine labels. I can reduce this list to some extent by only including symbols which start with the underscore character but that is still results in lots of irrelevant symbols.

The only way I can see of doing this at the moment it to extract the Subroutine labels from the source files and then look them up in the .lst file and extract the address. Is there another way to extract the subroutine labels and associate them to real addresses?