[fpc-pascal] Get all caller adresses of a procedure/function

Martin lazarus at mfriebe.de
Mon Aug 6 22:57:42 CEST 2012

On 06/08/2012 21:39, Rainer Stratmann wrote
> Can you explain it more?
> I want not search through the sourcecode, because it makes it less easy.
How does an address like $040012a help you find the source?

> All I need is all caller adresses of p1 in the program.
> Or an incremented counter at compiletime.
> Both seems impossible by now.
> If p1 is called then I can see which snippet was not yet called.
> If the compilerincremented counter at the end is 500, then I need 500 snippet
> entries and I can see which entry already was called by the program during
> execution.

I am still trying to understand what exactly you try to archive.

What I understand sofar:

-  your program has a fixed amount of text snippets in a given language
   QUESTION: are those snippets unique? Or can there be 2 individual 
snippets, that have the same text, but must be treated as different?
-  you want to implement a method that translates them
- you want to ensure this method was called exactly (or is it at least?) 
once, for each snippet.

For some reason that I do not understand yet, you need a unique 
identifier for each snippet.

Well if the text of the snippets is unique, then you can use the text 
So instead of using $040012a as token, you can use 'hello world'

That is, I still do not see, why you go this way at all.
You must have a list of all translations somewhere, and somehow you 
translate each snippet. For updating translations, you can
1) add each snippet that has no translation to a list
2) mark each translation, once it was used, and when the app finishes 
list all translations that where not used.

Or explain again what you try to do?

More information about the fpc-pascal mailing list