* dwarf_expr: unhandled 0x12 DW_OP_ operation @ 2008-02-15 12:54 Diego 'Flameeyes' Pettenò [not found] ` <m2wsp68jnl.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Diego 'Flameeyes' Pettenò @ 2008-02-15 12:54 UTC (permalink / raw) To: dwarves-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 394 bytes --] 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/ [-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <m2wsp68jnl.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: dwarf_expr: unhandled 0x12 DW_OP_ operation [not found] ` <m2wsp68jnl.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2008-02-15 13:08 ` Arnaldo Carvalho de Melo [not found] ` <20080215130818.GB31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Arnaldo Carvalho de Melo @ 2008-02-15 13:08 UTC (permalink / raw) To: Diego 'Flameeyes' Pettenò; +Cc: dwarves-u79uwXL29TY76Z2rM5mHXA 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20080215130818.GB31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>]
* Re: dwarf_expr: unhandled 0x12 DW_OP_ operation [not found] ` <20080215130818.GB31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> @ 2008-02-15 13:11 ` Arnaldo Carvalho de Melo [not found] ` <20080215131136.GC31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Arnaldo Carvalho de Melo @ 2008-02-15 13:11 UTC (permalink / raw) To: Diego 'Flameeyes' Pettenò; +Cc: dwarves-u79uwXL29TY76Z2rM5mHXA 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20080215131136.GC31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>]
* Re: dwarf_expr: unhandled 0x12 DW_OP_ operation [not found] ` <20080215131136.GC31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> @ 2008-02-15 13:36 ` Arnaldo Carvalho de Melo [not found] ` <20080215133619.GD31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Arnaldo Carvalho de Melo @ 2008-02-15 13:36 UTC (permalink / raw) To: Diego 'Flameeyes' Pettenò; +Cc: dwarves-u79uwXL29TY76Z2rM5mHXA 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 DW_OP_deref DW_OP_plus 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_lit20 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_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_reg8 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_lit20 DW_OP_minus DW_OP_deref DW_OP_plus 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 DW_OP_deref DW_OP_plus 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_lit20 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_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_lit20 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_reg8 DW_OP_minus DW_OP_deref DW_OP_plus 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... - Arnaldo ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20080215133619.GD31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>]
* Re: dwarf_expr: unhandled 0x12 DW_OP_ operation [not found] ` <20080215133619.GD31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> @ 2008-02-15 13:49 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 5+ messages in thread From: Arnaldo Carvalho de Melo @ 2008-02-15 13:49 UTC (permalink / raw) To: Diego 'Flameeyes' Pettenò; +Cc: dwarves-u79uwXL29TY76Z2rM5mHXA 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 The following operations all push a value onto the DWARF stack. 1. DW_OP_lit0, DW_OP_lit1, ..., DW_OP_lit31 The DW_OP_litn operations encode the unsigned literal values from 0 through 31, inclusive. 2. DW_OP_addr The DW_OP_addr operation has a single operand that encodes a machine address and whose size is the size of an address on the target machine. 3. DW_OP_const1u The single operand of the DW_OP_const1u operation provides a 1-byte unsigned integer constant. 4. DW_OP_const1s The single operand of the DW_OP_const1s operation provides a 1-byte signed integer constant. 5. DW_OP_const2u The single operand of the DW_OP_const2u operation provides a 2-byte unsigned integer constant. 6. DW_OP_const2s The single operand of the DW_OP_const2s operation provides a 2-byte signed integer constant. <SNIP> 11. DW_OP_constu The single operand of the DW_OP_constu operation provides an unsigned LEB128 integer constant. 12. DW_OP_consts The single operand of the DW_OP_consts operation provides a signed LEB128 integer constant. <SNIP> 7. DW_OP_deref The DW_OP_deref operation pops the top stack entry and treats it as an address. The value retrieved from that address is pushed. The size of the data retrieved from the dereferenced address is the size of an address on the target machine. So probably the best thing to do is to convert this location expression to a C like syntax and show it in the offset comment. - Arnaldo ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-02-15 13:49 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-02-15 12:54 dwarf_expr: unhandled 0x12 DW_OP_ operation Diego 'Flameeyes' Pettenò [not found] ` <m2wsp68jnl.fsf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2008-02-15 13:08 ` Arnaldo Carvalho de Melo [not found] ` <20080215130818.GB31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 2008-02-15 13:11 ` Arnaldo Carvalho de Melo [not found] ` <20080215131136.GC31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 2008-02-15 13:36 ` Arnaldo Carvalho de Melo [not found] ` <20080215133619.GD31602-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> 2008-02-15 13:49 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).