|
From: Tom H. <to...@co...> - 2005-08-12 09:56:25
|
In message <200...@gm...>
Josef Weidendorfer <Jos...@gm...> wrote:
> On Friday 12 August 2005 09:51, Tom Hughes wrote:
>> Remembering symbols after an unmap is hard - the problem is that a
>> future dlopen could reuse the same addresses so it means storing
>> temporal information of some sort with all the backtraces. This has
>> been discussed in depth numerous times in the past.
>
> Temporal information is not really needed. You have to convert the address to
> "time-independent" information at the time the stacktrace is taken.
>
> The backtraces could store (mapped object, offset) instead of a pure address.
> "mapped object" being a small struct with the object name which is not to be
> discarded. When a object is re"dl"opened, one would have to make sure that it
> is identified as the old one.
Recording the name of the object is directly equivalent to recording a
timestamp than could be used to lookup into a table of what was mapped
when - it is temporal information in a sense.
> But you still have the problem with discarded debug info to map offsets to
> symbol names. You also would have to store the symbol names themself in the
> backtraces (or some IDs together with a string table).
Resolving the name immediately is the other choice, but it all amounts
to much the same thing in the end which is extra storage space for each
context that has to be recorded.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|