vcmbox -> mbox
[AROS.git] / compiler / include / libraries / debug.h
blobceee6c22b3a17c04cb46633630e481bcd9b6b08c
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Structures and TagItem for debug.library
6 Lang: english
7 */
9 #ifndef LIBRARIES_DEBUG_H
10 #define LIBRARIES_DEBUG_H
12 #include <exec/lists.h>
13 #include <exec/nodes.h>
14 #include <dos/elf.h>
16 /* Tags for DecodeLocation() */
17 #define DL_Dummy (TAG_USER + 0x03e00000)
18 #define DL_ModuleName (DL_Dummy + 1)
19 #define DL_SegmentName (DL_Dummy + 2)
20 #define DL_SegmentPointer (DL_Dummy + 3)
21 #define DL_SegmentNumber (DL_Dummy + 4)
22 #define DL_SegmentStart (DL_Dummy + 5)
23 #define DL_SegmentEnd (DL_Dummy + 6)
24 #define DL_SymbolName (DL_Dummy + 7)
25 #define DL_SymbolStart (DL_Dummy + 8)
26 #define DL_SymbolEnd (DL_Dummy + 9)
27 #define DL_FirstSegment (DL_Dummy + 10)
29 /* Known debug information types */
30 #define DEBUG_NONE 0
31 #define DEBUG_ELF 1
32 #define DEBUG_PARTHENOPE 2
33 #define DEBUG_HUNK 3
35 /* ELF module debug information */
36 struct ELF_DebugInfo
38 struct elfheader *eh;
39 struct sheader *sh;
42 /* Kickstart module debug information (pointed to by KRN_DebugInfo ti_Data) */
43 struct ELF_ModuleInfo
45 struct ELF_ModuleInfo *Next; /* Pointer to next module in list */
46 const char *Name; /* Pointer to module name */
47 unsigned short Type; /* DEBUG_ELF, for convenience */
48 struct elfheader *eh; /* ELF file header */
49 struct sheader *sh; /* ELF section header */
52 /* Structure received as message of EnumerateSymbols hook */
53 struct SymbolInfo
55 LONG si_Size; /* Size of the structure */
56 CONST_STRPTR si_ModuleName;
57 CONST_STRPTR si_SymbolName;
58 APTR si_SymbolStart;
59 APTR si_SymbolEnd;
62 /* Parthenope module debug information (pointed to by KRN_DebugInfo ti_Data)
64 * (This structure has the same layout as Parthenope's "module_t")
66 struct Parthenope_ModuleInfo {
67 struct MinNode m_node;
68 CONST_STRPTR m_name;
69 CONST_STRPTR m_str;
70 ULONG m_lowest;
71 ULONG m_highest;
72 struct MinList m_symbols;
75 struct Parthenope_Symbol {
76 struct MinNode s_node;
77 CONST_STRPTR s_name;
78 ULONG s_lowest;
79 ULONG s_highest;
82 /* HUNK module debug information */
83 struct HUNK_DebugInfo
85 APTR dummy;
88 #endif