Re: Brain fart alert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-02-26 at 02:50 +0100, Nicolas wrote:
> Hello,
> 
> Just pinging the list, about the alert triggered by the example in my
> last email (brainfart2.cpp).

The issue is:

 [    69]    class_type
             name                 (string) "C"
             byte_size            (data1) 8
             decl_file            (data1) 1
             decl_line            (data1) 11
             containing_type      (ref4) [    69]
             sibling              (ref4) [    aa]
 [    77]      inheritance
               type                 (ref4) [    57]
               data_member_location (sdata) 0
               accessibility        (data1) public (1)
 [    7e]      member
               name                 (strp) "_vptr.C"
               type                 (ref4) [    bc]
               data_member_location (sdata) 0
               artificial           (flag) Yes

class__fprintf sees the inheritance and member at the same
data_member_location and skips the member (which contains the real
size).

You could work around it with the following patch:

diff --git a/dwarves_fprintf.c b/dwarves_fprintf.c
index 23da5b1..90d830a 100644
--- a/dwarves_fprintf.c
+++ b/dwarves_fprintf.c
@@ -1386,8 +1386,7 @@ size_t class__fprintf(struct class *class, const
struct cu
                ++printed;
 
                /* XXX for now just skip these */
-               if (tag_pos->tag == DW_TAG_inheritance &&
-                   pos->virtuality == DW_VIRTUALITY_virtual)
+               if (tag_pos->tag == DW_TAG_inheritance)
                        continue;
 
                /*

Just ignoring the virtuality. But I don't really understand the special
casing and sizing issues around inheritance. So why this works is a
mystery to me atm.

Cheers,

Mark

--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux