tree 52e57f16bd3d5c88580fd7e10dd8c0125c772ecb
parent bfa033b07f50a20229f33479c1058a3c7c22453f
author Arnaldo Carvalho de Melo <acme@redhat.com> 1681434471 -0300
committer Arnaldo Carvalho de Melo <acme@redhat.com> 1681434471 -0300

dwarf_loader: DW_TAG_subroutine_type may have a DW_AT_byte_size

First seen in Go, where DW_TAG_member don't come with a DW_AT_byte_size,
so we need to figure it out from its type using tag__byte_size() in
class_member__cache_byte_size() so either use the DW_AT_byte size that
comes in DW_TAG_subroutine_type or the cu->addr_size to use the pointer
size.

With this we manage to pretty print this Go class:

  $ pahole -C runtime._type ../prometheus-uprobes/main
  struct runtime._type {
  	uintptr                    size;                 /*     0     8 */
  	uintptr                    ptrdata;              /*     8     8 */
  	uint32                     hash;                 /*    16     4 */
  	runtime.tflag              tflag;                /*    20     1 */
  	uint8                      align;                /*    21     1 */
  	uint8                      fieldAlign;           /*    22     1 */
  	uint8                      kind;                 /*    23     1 */
  	func(unsafe.Pointer, unsafe.Pointer) bool equal; /*    24     8 */
  	uint8 *                    gcdata;               /*    32     8 */
  	runtime.nameOff            str;                  /*    40     4 */
  	runtime.typeOff            ptrToThis;            /*    44     4 */

  	/* size: 48, cachelines: 1, members: 11 */
  	/* last cacheline: 48 bytes */
  };

At some point we should select how to pretty print this, with a Go
formatter and the above C one :-)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
