Issue 33001: Add missing includes and update comments to DWARF code
http://breakpad.appspot.com/33001 A=jim.blandy R=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/branches/linux-dwarf@412 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
3d9c2ce401
commit
52af30d80c
@ -29,6 +29,8 @@
|
||||
#ifndef UTIL_DEBUGINFO_BYTEREADER_INL_H__
|
||||
#define UTIL_DEBUGINFO_BYTEREADER_INL_H__
|
||||
|
||||
#include <cassert>
|
||||
|
||||
#include "common/dwarf/bytereader.h"
|
||||
|
||||
namespace dwarf2reader {
|
||||
|
@ -28,6 +28,8 @@
|
||||
|
||||
#include <stack>
|
||||
#include <utility>
|
||||
#include <memory>
|
||||
#include <cstring>
|
||||
|
||||
#include "common/dwarf/bytereader-inl.h"
|
||||
#include "common/dwarf/dwarf2reader.h"
|
||||
@ -75,8 +77,12 @@ void CompilationUnit::ReadAbbrevs() {
|
||||
if (abbrevs_)
|
||||
return;
|
||||
|
||||
// First get the debug_abbrev section
|
||||
SectionMap::const_iterator iter = sections_.find("__debug_abbrev");
|
||||
// First get the debug_abbrev section. ".debug_abbrev" is the name
|
||||
// recommended in the DWARF spec, and used on Linux;
|
||||
// "__debug_abbrev" is the name used in Mac OS X Mach-O files.
|
||||
SectionMap::const_iterator iter = sections_.find(".debug_abbrev");
|
||||
if (iter == sections_.end())
|
||||
iter = sections_.find("__debug_abbrev");
|
||||
assert(iter != sections_.end());
|
||||
|
||||
abbrevs_ = new vector<Abbrev>;
|
||||
@ -88,7 +94,9 @@ void CompilationUnit::ReadAbbrevs() {
|
||||
const char* abbrev_start = iter->second.first +
|
||||
header_.abbrev_offset;
|
||||
const char* abbrevptr = abbrev_start;
|
||||
#ifndef NDEBUG
|
||||
const uint64 abbrev_length = iter->second.second - header_.abbrev_offset;
|
||||
#endif
|
||||
|
||||
while (1) {
|
||||
CompilationUnit::Abbrev abbrev;
|
||||
@ -261,8 +269,12 @@ void CompilationUnit::ReadHeader() {
|
||||
}
|
||||
|
||||
uint64 CompilationUnit::Start() {
|
||||
// First get the debug_info section
|
||||
SectionMap::const_iterator iter = sections_.find("__debug_info");
|
||||
// First get the debug_info section. ".debug_info" is the name
|
||||
// recommended in the DWARF spec, and used on Linux; "__debug_info"
|
||||
// is the name used in Mac OS X Mach-O files.
|
||||
SectionMap::const_iterator iter = sections_.find(".debug_info");
|
||||
if (iter == sections_.end())
|
||||
iter = sections_.find("__debug_info");
|
||||
assert(iter != sections_.end());
|
||||
|
||||
// Set up our buffer
|
||||
@ -292,8 +304,12 @@ uint64 CompilationUnit::Start() {
|
||||
// Otherwise, continue by reading our abbreviation entries.
|
||||
ReadAbbrevs();
|
||||
|
||||
// Set the string section if we have one.
|
||||
iter = sections_.find("__debug_str");
|
||||
// Set the string section if we have one. ".debug_str" is the name
|
||||
// recommended in the DWARF spec, and used on Linux; "__debug_str"
|
||||
// is the name used in Mac OS X Mach-O files.
|
||||
iter = sections_.find(".debug_str");
|
||||
if (iter == sections_.end())
|
||||
iter = sections_.find("__debug_str");
|
||||
if (iter != sections_.end()) {
|
||||
string_buffer_ = iter->second.first;
|
||||
string_buffer_length_ = iter->second.second;
|
||||
@ -464,7 +480,7 @@ void CompilationUnit::ProcessDIEs() {
|
||||
// we need semantics of boost scoped_ptr here - no intention of trasnferring
|
||||
// ownership of the stack. use const, but then we limit ourselves to not
|
||||
// ever being able to call .reset() on the smart pointer.
|
||||
auto_ptr<stack<uint64> > const die_stack(new stack<uint64>);
|
||||
std::auto_ptr<stack<uint64> > const die_stack(new stack<uint64>);
|
||||
|
||||
while (dieptr < (lengthstart + header_.length)) {
|
||||
// We give the user the absolute offset from the beginning of
|
||||
|
@ -224,8 +224,11 @@ class CompilationUnit {
|
||||
|
||||
// Begin reading a Dwarf2 compilation unit, and calling the
|
||||
// callbacks in the Dwarf2Handler
|
||||
// Return the offset of the end of the compilation unit - the passed
|
||||
// in offset.
|
||||
|
||||
// Return the full length of the compilation unit, including
|
||||
// headers. This plus the starting offset passed to the constructor
|
||||
// is the offset of the end of the compilation unit --- the start of
|
||||
// the next compilation unit, if there is one.
|
||||
uint64 Start();
|
||||
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user