1 //===-- DIContext.h ---------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines DIContext, an abstract data structure that holds
11 // debug information data.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_DEBUGINFO_DICONTEXT_H
16 #define LLVM_DEBUGINFO_DICONTEXT_H
18 #include "llvm/ADT/StringRef.h"
19 #include "llvm/Support/DataTypes.h"
25 /// DILineInfo - a format-neutral container for source line information.
31 DILineInfo(const char *fileName, uint32_t line, uint32_t column)
32 : FileName(fileName), Line(line), Column(column) {}
34 const char *getFileName() const { return FileName; }
35 uint32_t getLine() const { return Line; }
36 uint32_t getColumn() const { return Column; }
43 /// getDWARFContext - get a context for binary DWARF data.
44 static DIContext *getDWARFContext(bool isLittleEndian,
45 StringRef infoSection,
46 StringRef abbrevSection,
47 StringRef aRangeSection = StringRef(),
48 StringRef lineSection = StringRef(),
49 StringRef stringSection = StringRef());
51 virtual void dump(raw_ostream &OS) = 0;
53 virtual DILineInfo getLineInfoForAddress(uint64_t address) = 0;