[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[tcf-dev] Stack trace evaluation in the UI
|
Hi,
I've been working on a stack trace problem recently and found a probable
cause in the UI. Here is a log of the UI evaluating a stack trace:
448.180 Out: C 173 StackTrace getContext ["FP0.tracker0.ctx169"]
448.180 Inp: R 173
[{IP:266729288,ID:"FP0.tracker0.ctx169",Level:0,ProcessID:"tracker0.ctx168",ParentID:"tracker0.ctx169"}]
null
448.181 Out: C 174 LineNumbers mapToSource "tracker0.ctx168" 266729287
266729288
448.181 Out: C 175 Symbols findByAddr "tracker0.ctx168" 266729287
448.181 Inp: R 174 null []
448.182 Inp: R 175 null
"@M0.@S3.25.3630810.50A3C8EC.0.0.3.-1.909.0.0.tracker0.ctx168"
448.182 Out: C 176 Symbols getContext
"@M0.@S3.25.3630810.50A3C8EC.0.0.3.-1.909.0.0.tracker0.ctx168"
448.182 Inp: R 176 null
{Name:"__libc_start_main",TypeClass:8,UpdatePolicy:0,Class:3,Address:266729064,ID:"@M0.@S3.25.3630810.50A3C8EC.0.0.3.-1.909.0.0.tracker0.ctx168",OwnerID:"tracker0.ctx168",Size:224}
I'd like to understand why the UI looks for the symbol at pc -1 instead
of pc?
Because of the minus one, the stack trace finds the frame in a specific
function when it should not:
__libc_start_main starts at 266729064 with size 224
pc in __libc_start_main equals to pc < (266729064 + 224)
so while it's false for pc = 266729288, it's true for pc = 266729287
Any reason it's done that way? Thanks for your help.
- Christophe