1 /* $Id: kDbgModLdr.cpp 29 2009-07-01 20:30:29Z bird $ */
2 /** @file
3  * kDbg - The Debug Info Reader, kLdr Based.
4  */
5 
6 /*
7  * Copyright (c) 2006-2007 Knut St. Osmundsen <bird-kStuff-spamix@anduin.net>
8  *
9  * Permission is hereby granted, free of charge, to any person
10  * obtaining a copy of this software and associated documentation
11  * files (the "Software"), to deal in the Software without
12  * restriction, including without limitation the rights to use,
13  * copy, modify, merge, publish, distribute, sublicense, and/or sell
14  * copies of the Software, and to permit persons to whom the
15  * Software is furnished to do so, subject to the following
16  * conditions:
17  *
18  * The above copyright notice and this permission notice shall be
19  * included in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28  * OTHER DEALINGS IN THE SOFTWARE.
29  */
30 
31 /*******************************************************************************
32 *   Header Files                                                               *
33 *******************************************************************************/
34 #include <k/kDbg.h>
35 #include <k/kLdr.h>
36 #include "kDbgInternal.h"
37 
38 
39 /*******************************************************************************
40 *   Structures and Typedefs                                                    *
41 *******************************************************************************/
42 /**
43  * A kLdr based debug reader.
44  */
45 typedef struct KDBGMODLDR
46 {
47     /** The common module core. */
48     KDBGMOD     Core;
49     /** Pointer to the loader module. */
50     PKLDRMOD    pLdrMod;
51 } KDBGMODLDR, *PKDBGMODLDR;
52 
53 
54 /**
55  * @copydoc KDBGMODOPS::pfnQueryLine
56  */
kDbgModLdrQueryLine(PKDBGMOD pMod,KI32 iSegment,KDBGADDR uOffset,PKDBGLINE pLine)57 static int kDbgModLdrQueryLine(PKDBGMOD pMod, KI32 iSegment, KDBGADDR uOffset, PKDBGLINE pLine)
58 {
59     //PKDBGMODLDR pThis = (PKDBGMODLDR)pMod;
60     return KERR_NOT_IMPLEMENTED;
61 }
62 
63 
64 /**
65  * @copydoc KDBGMODOPS::pfnQuerySymbol
66  */
kDbgModLdrQuerySymbol(PKDBGMOD pMod,KI32 iSegment,KDBGADDR off,PKDBGSYMBOL pSym)67 static int kDbgModLdrQuerySymbol(PKDBGMOD pMod, KI32 iSegment, KDBGADDR off, PKDBGSYMBOL pSym)
68 {
69     //PKDBGMODLDR pThis = (PKDBGMODLDR)pMod;
70     return KERR_NOT_IMPLEMENTED;
71 }
72 
73 
74 /**
75  * @copydoc KDBGMODOPS::pfnClose
76  */
kDbgModLdrClose(PKDBGMOD pMod)77 static int kDbgModLdrClose(PKDBGMOD pMod)
78 {
79     //PKDBGMODLDr pThis = (PKDBGMODLDR)pMod;
80     return KERR_NOT_IMPLEMENTED;
81 }
82 
83 
84 /**
85  * @copydocs  KDBGMODOPS::pfnOpen.
86  */
kDbgModLdrOpen(PKDBGMOD * ppMod,PKRDR pRdr,KBOOL fCloseRdr,KFOFF off,KFOFF cb,struct KLDRMOD * pLdrMod)87 static int kDbgModLdrOpen(PKDBGMOD *ppMod, PKRDR pRdr, KBOOL fCloseRdr, KFOFF off, KFOFF cb, struct KLDRMOD *pLdrMod)
88 {
89     return KERR_NOT_IMPLEMENTED;
90 }
91 
92 
93 /**
94  * Methods for a PE module.
95  */
96 const KDBGMODOPS g_kDbgModLdr =
97 {
98     "kLdr",
99     NULL,
100     kDbgModLdrOpen,
101     kDbgModLdrClose,
102     kDbgModLdrQuerySymbol,
103     kDbgModLdrQueryLine,
104     "kLdr"
105 };
106 
107 
108 
109 
110