ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dwarfopen.c
Go to the documentation of this file.
00001 
00002 #include <precomp.h>
00003 #define NDEBUG
00004 #include <debug.h>
00005 
00006 /* Adapted for PE */
00007 
00008 Dwarf*
00009 dwarfopen(Pe *pe)
00010 {
00011     Dwarf *d;
00012 
00013     if(pe == nil){
00014         werrstr("nil pe passed to dwarfopen");
00015         return nil;
00016     }
00017 
00018     d = mallocz(sizeof(Dwarf), 1);
00019     if(d == nil)
00020         return nil;
00021 
00022     d->pe = pe;
00023     if(pe->loadsection(pe, ".debug_abbrev", &d->abbrev) < 0
00024     || pe->loadsection(pe, ".debug_aranges", &d->aranges) < 0
00025     || pe->loadsection(pe, ".debug_line", &d->line) < 0
00026     || pe->loadsection(pe, ".debug_info", &d->info) < 0
00027     || pe->loadsection(pe, ".debug_loc", &d->loc) < 0)
00028         goto err;
00029     pe->loadsection(pe, ".debug_pubnames", &d->pubnames);
00030     pe->loadsection(pe, ".debug_frame", &d->frame);
00031     pe->loadsection(pe, ".debug_ranges", &d->ranges);
00032     pe->loadsection(pe, ".debug_str", &d->str);
00033 
00034     return d;
00035 
00036 err:
00037     DPRINT("Failed to open dwarf\n");
00038     free(d->abbrev.data);
00039     free(d->aranges.data);
00040     free(d->frame.data);
00041     free(d->line.data);
00042     free(d->pubnames.data);
00043     free(d->ranges.data);
00044     free(d->str.data);
00045     free(d->info.data);
00046     free(d->loc.data);
00047     free(d);
00048     return nil;
00049 }
00050 
00051 void
00052 dwarfclose(Dwarf *d)
00053 {
00054     free(d->abbrev.data);
00055     free(d->aranges.data);
00056     free(d->frame.data);
00057     free(d->line.data);
00058     free(d->pubnames.data);
00059     free(d->ranges.data);
00060     free(d->str.data);
00061     free(d->info.data);
00062     pefree(d->pe);
00063     free(d);
00064 }
00065 

Generated on Sun May 27 2012 04:36:17 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.