Skip to main content

[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



Back to the top