Elena Laskavaia
|
Re: Application profiler for dll files
|
Elena Laskavaia
03/10/2010 9:25 AM
post49163
|
Re: Application profiler for dll files
Sorry I don't understand what you mean by DLL with remapped address. Do
you have a path in Shared Library path tab or not?
App Profiler needs 4 things to work correctly (mapping):
- "loading" records present in trace
- library path is set in Shared Library tab of Tools tab in launch config
- library file name be exact same as name in "loading" record
- library has to be compiled with -g and not stripped
In older versions of libprofiling binary has to be linked with -Wl,-E to
export all symbols, because otherwise
profiling library linked twice and have two data segments, instead of
one. Which was causing profiling
event not generating for the shared libraries (but for you they seems to
be generated right?).
If you think it may be the case you
can also link library dynamically instead (use -llibprofiling instead of
-llibprofilingS)
Actual address calculated as base + library offset, i.e if call is at
0xfe381100
The base is 0xfe381000 and offset is 0x100, so it would look up in
symbol table of library which is loaded at
this address at 0x100 and symbols is there it is mapped to this address
0xfe381100
>
>> Check to make sure this library is "Shared Library" path for launch
>> (another "tool" in Tools tab in launch configuration)
>>
>
> Profiler seems to detect library correctly. Reason why I believe so is that if I recreate my DLL with remapped address
(Thats is remapping the entire DLL to 0xfe381000) , then I am able to see the function names in Application profiler
trace.
>
> Is there a way I can check why profiler is not able to translate address of the DLL?
> Has there been any fix in the latest IDE? I may also give it a try.
>
> BR
> Akash
>
>
>
|
|
|