RE: [patch v8 05/24] frame: artificial frame id's

Metzger, Markus T
2013-12-13T13:01:14Z

> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Pedro Alves

> Take a look at this patch:
>
> https://sourceware.org/ml/gdb-patches/2013-04/msg00541.html
>
> It seems to me your frames are exactly like those, though
> it sounds like you may have more than one frame with stack
> unavailable, and with the same code address, but that should
> be identified as different frames (please confirm). In that
> case, it seems like you could use the artificial depth to
> distinguish them.

I have several frames, none of them has an available stack.
It's either my frames or some other frames. They are never
mixed.

I may also have frames with the same code address and they
would need to be identified as different frames - confirmed.

I'm assigning a unique identifier to special so I can distinguish
frames that have the same code address. That identifier is
preserved during stepping.

Afaik, the artificial depth is used for artificial frames beneath
a real frame. It's used for inline and tailcall frames. The
artificial_depth field is a simple counter.

This does not quite match what I need. Since all frames in my
stack are artificial, I wouldn't have a real frame on top from
which to start counting. So I would count from the sentinel
frame and the artificial_depth would be equal to the frame level.

I could imagine that this would cause problems during stepping
when trying to detect stepping into subroutines by comparing
frame_id's.

I could set stack_p to -1 instead of 0, though. Looks like this
already addresses some of the problems you listed.

Do you have tests that demonstrate the issues you mentioned?
The tests in the repo behave identical with or without my changes.

regards,
markus.

Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052