windows-nt/Source/XPSP1/NT/sdktools/debuggers/ntsd64/ntsrc.h
2020-09-26 16:20:57 +08:00

70 lines
1.6 KiB
C

//----------------------------------------------------------------------------
//
// ntsrc.h
//
// Copyright (C) Microsoft Corporation, 1997-2001.
//
//----------------------------------------------------------------------------
#ifndef _NTSRC_H_
#define _NTSRC_H_
#define SRCOPT_STEP_SOURCE 0x00000001
#define SRCOPT_LIST_LINE 0x00000002
#define SRCOPT_LIST_SOURCE 0x00000004
#define SRCOPT_LIST_SOURCE_ONLY 0x00000008
extern ULONG g_SrcOptions;
extern PSTR g_SrcPath;
extern ULONG g_OciSrcBefore, g_OciSrcAfter;
typedef struct _SRCFILE
{
struct _SRCFILE *Next;
LPSTR File;
ULONG Lines;
LPSTR *LineText;
LPSTR RawText;
} SRCFILE, *PSRCFILE;
void UnloadSrcFiles(void);
void OutputLineAddr(ULONG64 Offset);
void OutputSrcLines(PSRCFILE File, ULONG First, ULONG Last, ULONG Mark);
BOOL OutputSrcLinesAroundAddr(ULONG64 Offset, ULONG Before, ULONG After);
enum
{
// Information was found.
LINE_FOUND,
// No information was found.
LINE_NOT_FOUND,
// A specific module was referenced and it did
// not contain the requested line.
LINE_NOT_FOUND_IN_MODULE,
};
ULONG GetOffsetFromLine(PSTR FileLine, PULONG64 Offset);
void ParseSrcOptCmd(CHAR Cmd);
void ParseSrcLoadCmd(void);
void ParseSrcListCmd(CHAR Cmd);
void ParseOciSrcCmd(void);
void ParseLines(PSTR Args);
BOOL
FindSrcFileOnPath(
ULONG StartElement,
LPSTR File,
ULONG Flags,
PSTR Found,
PSTR* MatchPart,
PULONG FoundElement
);
void ChangeSrcPath(PSTR Args, BOOL Append);
void ChangeExePath(PSTR Args, BOOL Append);
#endif // #ifndef _NTSRC_H_