X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=blobdiff_plain;f=Repair%2FRepairCompiler%2Fstructextract%2Fdumpstructures.c;h=8a95dea964b3bfc27b989b424984e415481c6a68;hp=01e7d5732f71d6c3799f2dea06d6c79ad7a218c9;hb=23ac0c09ffe5d225de83ca4195ae5448434b0a71;hpb=d0cc93fb75919256c617501584fdbd8cd6bfd35e diff --git a/Repair/RepairCompiler/structextract/dumpstructures.c b/Repair/RepairCompiler/structextract/dumpstructures.c index 01e7d57..8a95dea 100755 --- a/Repair/RepairCompiler/structextract/dumpstructures.c +++ b/Repair/RepairCompiler/structextract/dumpstructures.c @@ -582,14 +582,38 @@ char * printname(dwarf_entry * type,int op) { case DW_TAG_structure_type: { collection_type *ctype=(collection_type*)type->entry_ptr; if (op==GETTYPE&&ctype->name==NULL&&assigntype) { - ctype->name=(char*)malloc(100); - sprintf(ctype->name,"unnamed_0x%lx",type->ID); + char *newb=(char *)malloc(1000); + int newchars=0; + int i; + ctype->name=newb; + newchars=sprintf(newb,"unnamed_",type->ID); + newb+=newchars; + for(i=0;inum_members;i++) { + dwarf_entry * de=ctype->members[i]; + if (de->tag_name==DW_TAG_member) { + member * me=(member *)de->entry_ptr; + newchars=sprintf(newb,"%s",me->name); + newb+=newchars; + } + } } if (op==GETTYPE) return ctype->name; if (op==GETJUSTTYPE&&ctype->name==NULL&&assigntype) { - ctype->name=(char*)malloc(100); - sprintf(ctype->name,"unnamed_0x%lx",type->ID); + char *newb=(char *)malloc(1000); + int newchars=0; + int i; + ctype->name=newb; + newchars=sprintf(newb,"unnamed_",type->ID); + newb+=newchars; + for(i=0;inum_members;i++) { + dwarf_entry * de=ctype->members[i]; + if (de->tag_name==DW_TAG_member) { + member * me=(member *)de->entry_ptr; + newchars=sprintf(newb,"%s",me->name); + newb+=newchars; + } + } } if (op==GETJUSTTYPE) return ctype->name;