Gravatar

dwarf_expr: unhandled 0x12 DW_OP_ operation


I'm trying to use pfunct to identify software that bundles internal
copies of common libraries (I've started with zlib's adler32 function
for now), and I've seen this message being repeated tons of times for
kile, kxmleditor, VirtualBox and a lot more stuff.

Has anybody an idea of what that means?

Thanks,
--

-- 
Diego "Flameeyes" Pettenò
http://farragut.flameeyes.is-a-geek.org/
Favicon

Re: dwarf_expr: unhandled 0x12 DW_OP_ operation

Em Fri, Feb 15, 2008 at 01:54:22PM +0100, Diego 'Flameeyes' Pettenò escreveu:
> 
> I'm trying to use pfunct to identify software that bundles internal
> copies of common libraries (I've started with zlib's adler32 function
> for now), and I've seen this message being repeated tons of times for
> kile, kxmleditor, VirtualBox and a lot more stuff.
> 
> Has anybody an idea of what that means?

virtual public classes :-\ Can you send me one of the object files? I'll
try to work on supporting non-trivial DWARF expressions so that we
properly support this.

- Arnaldo
Favicon

Re: dwarf_expr: unhandled 0x12 DW_OP_ operation

Em Fri, Feb 15, 2008 at 11:08:18AM -0200, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Feb 15, 2008 at 01:54:22PM +0100, Diego 'Flameeyes' Pettenò escreveu:
> > 
> > I'm trying to use pfunct to identify software that bundles internal
> > copies of common libraries (I've started with zlib's adler32 function
> > for now), and I've seen this message being repeated tons of times for
> > kile, kxmleditor, VirtualBox and a lot more stuff.
> > 
> > Has anybody an idea of what that means?
> 
> virtual public classes :-\ Can you send me one of the object files? I'll
> try to work on supporting non-trivial DWARF expressions so that we
> properly support this.

No need for that, I have an object from the ATLAS project that has these
types of classes:

struct IL1JetTools : virtual public IAlgTool {
public:

        /* struct IAlgTool            <ancestor>; */     /* 4294967295 4 */

<SNIP>

See the offset?

- Arnaldo
Favicon

Re: dwarf_expr: unhandled 0x12 DW_OP_ operation

Em Fri, Feb 15, 2008 at 11:11:36AM -0200, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Feb 15, 2008 at 11:08:18AM -0200, Arnaldo Carvalho de Melo escreveu:
> > Em Fri, Feb 15, 2008 at 01:54:22PM +0100, Diego 'Flameeyes' Pettenò escreveu:
> > > 
> > > I'm trying to use pfunct to identify software that bundles internal
> > > copies of common libraries (I've started with zlib's adler32 function
> > > for now), and I've seen this message being repeated tons of times for
> > > kile, kxmleditor, VirtualBox and a lot more stuff.
> > > 
> > > Has anybody an idea of what that means?
> > 
> > virtual public classes :-\ Can you send me one of the object files? I'll
> > try to work on supporting non-trivial DWARF expressions so that we
> > properly support this.
> 
> No need for that, I have an object from the ATLAS project that has these
> types of classes:
> 
> struct IL1JetTools : virtual public IAlgTool {
> public:
> 
>         /* struct IAlgTool            <ancestor>; */     /* 4294967295 4 */
> 
> <SNIP>
> 
> See the offset?

dwarf_expr: unhandled DWARF expression: DW_OP_dup DW_OP_deref DW_OP_lit28 DW_OP_minus DW_OP_deref
DW_OP_plus 
dwarf_expr: unhandled DWARF expression: DW_OP_dup DW_OP_deref DW_OP_const1u DW_OP_shl DW_OP_minus
(Continue reading)

Favicon

Re: dwarf_expr: unhandled 0x12 DW_OP_ operation

Em Fri, Feb 15, 2008 at 11:36:20AM -0200, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Feb 15, 2008 at 11:11:36AM -0200, Arnaldo Carvalho de Melo escreveu:
> > struct IL1JetTools : virtual public IAlgTool {
> > public:
> > 
> >         /* struct IAlgTool            <ancestor>; */     /* 4294967295 4 */
> > 
> > <SNIP>
> > 
> > See the offset?
> 
> dwarf_expr: unhandled DWARF expression: DW_OP_dup DW_OP_deref DW_OP_lit28 DW_OP_minus DW_OP_deref
DW_OP_plus 

<SNIP>

> So, for the first expression: it takes the value of some register,
> duplicates it on the stack, dereference the top of the stack and put it
> on the stack, puts lit28 on the stack, subtracts the two entries in the
> stack and puts the result on the stack and then dereferences the top of
> the stack and adds the two and puts the result on the stack, that should
> be the end result that will tell where the ancestor class instance is.
> 
> Now to understand what is DW_OP_lit28, perhaps just the value 28? But
> why do we have also DW_OP_const28u? /me reads the DWARF docs...

Dwarf3.pdf page 14:

2.5.1.1 Literal Encodings

(Continue reading)


Gmane