[fpc-pascal] Re: Get all caller adresses of a given function/procedure before executing
Rainer Stratmann
RainerStratmann at t-online.de
Wed Aug 15 16:17:56 CEST 2012
Am Wednesday 15 August 2012 15:20:21 schrieb Lukasz Sokol:
> On 15/08/2012 13:55, Rainer Stratmann wrote:
> > Am Wednesday 15 August 2012 14:49:04 schrieb Rainer Stratmann:
> >> I would call this function rs( s : pchar ) because it has to be short.
> >> if there is a rs() in the program the compiler stores the caller adress
> >> (unique handle) and the pointer to the pchar in a list.
> >
> > If the pointer to pchar is unique then this one information will be
> > already enough. That means the parameter s must be a constant text.
>
> This question has long lingered in my brain just could not express it:
>
> What happens in your program/translator, if the strings change their
> physical/relative address?
Then the
mov pcharconst , EAX
command also had changed.
At every start of the program I see if it works here.
If it works here ist works outside also.
> For example if you add/remove units and rebuild.
All pchar adresses are searched at programstart.
> For example if FPC internals decide to add or remove some padding in front
> of the constants.
Very unlikely.
For which reason should there be padding in front?
I can not see any insolvable problem here.
> Will all your translation work go to waste ?
Then I would have a look at the opcodes directly and see what has been changed
and likely find a solution.
If the maintainers decide to build in the suggested function above then
everthing is solved. By now no one of the maintainers wants this.
I also can ask what happens if there are no more maintainers for fpc?
More information about the fpc-pascal
mailing list