Add frame work for additional dwarf sections. Comments will improve as code

is added.

llvm-svn: 25410
This commit is contained in:
Jim Laskey 2006-01-17 20:41:40 +00:00
parent 1763a44ac2
commit cc9dfecf81
3 changed files with 147 additions and 3 deletions

View File

@ -744,6 +744,38 @@ namespace llvm {
///
const char *DwarfLineSection; /// Defaults to ".debug_line".
/// DwarfFrameSection - Section directive for Dwarf info.
///
const char *DwarfFrameSection; /// Defaults to ".debug_frame".
/// DwarfPubNamesSection - Section directive for Dwarf info.
///
const char *DwarfPubNamesSection; /// Defaults to ".debug_pubnames".
/// DwarfPubTypesSection - Section directive for Dwarf info.
///
const char *DwarfPubTypesSection; /// Defaults to ".debug_pubtypes".
/// DwarfStrSection - Section directive for Dwarf info.
///
const char *DwarfStrSection; /// Defaults to ".debug_str".
/// DwarfLocSection - Section directive for Dwarf info.
///
const char *DwarfLocSection; /// Defaults to ".debug_loc".
/// DwarfARangesSection - Section directive for Dwarf info.
///
const char *DwarfARangesSection; /// Defaults to ".debug_aranges".
/// DwarfRangesSection - Section directive for Dwarf info.
///
const char *DwarfRangesSection; /// Defaults to ".debug_ranges".
/// DwarfMacInfoSection - Section directive for Dwarf info.
///
const char *DwarfMacInfoSection; /// Defaults to ".debug_macinfo".
/// TextSection - Section directive for standard text.
///
const char *TextSection; /// Defaults to ".text".
@ -877,6 +909,38 @@ private:
///
void EmitDebugLines() const;
/// EmitDebugFrame - Emit info into a debug frame section.
///
void DwarfWriter::EmitDebugFrame();
/// EmitDebugPubNames - Emit info into a debug pubnames section.
///
void DwarfWriter::EmitDebugPubNames();
/// EmitDebugPubTypes - Emit info into a debug pubtypes section.
///
void DwarfWriter::EmitDebugPubTypes();
/// EmitDebugStr - Emit info into a debug str section.
///
void DwarfWriter::EmitDebugStr();
/// EmitDebugLoc - Emit info into a debug loc section.
///
void DwarfWriter::EmitDebugLoc();
/// EmitDebugARanges - Emit info into a debug aranges section.
///
void DwarfWriter::EmitDebugARanges();
/// EmitDebugRanges - Emit info into a debug ranges section.
///
void DwarfWriter::EmitDebugRanges();
/// EmitDebugMacInfo - Emit info into a debug macinfo section.
///
void DwarfWriter::EmitDebugMacInfo();
/// ShouldEmitDwarf - Returns true if Dwarf declarations should be made.
/// When called it also checks to see if debug info is newly available. if
/// so the initial Dwarf headers are emitted.

View File

@ -1293,6 +1293,46 @@ void DwarfWriter::EmitDebugLines() const {
EmitLabel("line_end", 0);
}
/// EmitDebugFrame - Emit visible names into a debug frame section.
///
void DwarfWriter::EmitDebugFrame() {
}
/// EmitDebugPubNames - Emit visible names into a debug pubnames section.
///
void DwarfWriter::EmitDebugPubNames() {
}
/// EmitDebugPubTypes - Emit visible names into a debug pubtypes section.
///
void DwarfWriter::EmitDebugPubTypes() {
}
/// EmitDebugStr - Emit visible names into a debug str section.
///
void DwarfWriter::EmitDebugStr() {
}
/// EmitDebugLoc - Emit visible names into a debug loc section.
///
void DwarfWriter::EmitDebugLoc() {
}
/// EmitDebugARanges - Emit visible names into a debug aranges section.
///
void DwarfWriter::EmitDebugARanges() {
}
/// EmitDebugRanges - Emit visible names into a debug ranges section.
///
void DwarfWriter::EmitDebugRanges() {
}
/// EmitDebugMacInfo - Emit visible names into a debug macinfo section.
///
void DwarfWriter::EmitDebugMacInfo() {
}
/// ShouldEmitDwarf - Determine if Dwarf declarations should be made.
///
@ -1329,6 +1369,14 @@ bool DwarfWriter::ShouldEmitDwarf() {
, DwarfAbbrevSection(".debug_abbrev")
, DwarfInfoSection(".debug_info")
, DwarfLineSection(".debug_line")
, DwarfFrameSection(".debug_frame")
, DwarfPubNamesSection(".debug_pubnames")
, DwarfPubTypesSection(".debug_pubtypes")
, DwarfStrSection(".debug_str")
, DwarfLocSection(".debug_loc")
, DwarfARangesSection(".debug_aranges")
, DwarfRangesSection(".debug_ranges")
, DwarfMacInfoSection(".debug_macinfo")
, TextSection(".text")
, DataSection(".data")
{}
@ -1377,6 +1425,30 @@ void DwarfWriter::EndModule() {
// Emit source line correspondence into a debug line section.
EmitDebugLines();
// Emit info into a debug frame section.
EmitDebugFrame();
// Emit info into a debug pubnames section.
EmitDebugPubNames();
// Emit info into a debug pubtypes section.
EmitDebugPubTypes();
// Emit info into a debug str section.
EmitDebugStr();
// Emit info into a debug loc section.
EmitDebugLoc();
// Emit info into a debug aranges section.
EmitDebugARanges();
// Emit info into a debug ranges section.
EmitDebugRanges();
// Emit info into a debug macinfo section.
EmitDebugMacInfo();
}
/// BeginFunction - Emit pre-function debug information.

View File

@ -215,9 +215,17 @@ namespace {
: DwarfWriter(o, ap)
{
needsSet = true;
DwarfAbbrevSection = ".section __DWARF,__debug_abbrev,regular,debug";
DwarfInfoSection = ".section __DWARF,__debug_info,regular,debug";
DwarfLineSection = ".section __DWARF,__debug_line,regular,debug";
DwarfAbbrevSection = ".section __DWARFA,__debug_abbrev,regular,debug";
DwarfInfoSection = ".section __DWARFA,__debug_info,regular,debug";
DwarfLineSection = ".section __DWARFA,__debug_line,regular,debug";
DwarfFrameSection = ".section __DWARFA,__debug_frame,regular,debug";
DwarfPubNamesSection = ".section __DWARFA,__debug_pubnames,regular,debug";
DwarfPubTypesSection = ".section __DWARFA,__debug_pubtypes,regular,debug";
DwarfStrSection = ".section __DWARFA,__debug_str,regular,debug";
DwarfLocSection = ".section __DWARFA,__debug_loc,regular,debug";
DwarfARangesSection = ".section __DWARFA,__debug_aranges,regular,debug";
DwarfRangesSection = ".section __DWARFA,__debug_ranges,regular,debug";
DwarfMacInfoSection = ".section __DWARFA,__debug_macinfo,regular,debug";
TextSection = ".text";
DataSection = ".data";
}