blob: 2da07979817a44aa507e6d6e2db212814114bbfe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
//*****************************************************************************
// The following are used to read and write data given NativeVarInfo
// for primitive types. Don't use these for VALUECLASSes.
//*****************************************************************************
#ifndef _NATIVE_VAR_ACCESSORS_H_
#define _NATIVE_VAR_ACCESSORS_H_
#include "corjit.h"
bool operator ==(const ICorDebugInfo::VarLoc &varLoc1,
const ICorDebugInfo::VarLoc &varLoc2);
#define MAX_NATIVE_VAR_LOCS 2
SIZE_T GetRegOffsInCONTEXT(ICorDebugInfo::RegNum regNum);
struct NativeVarLocation
{
ULONG64 addr;
TADDR size;
bool contextReg;
};
ULONG NativeVarLocations(const ICorDebugInfo::VarLoc & varLoc,
PT_CONTEXT pCtx,
ULONG numLocs,
NativeVarLocation* locs);
SIZE_T *NativeVarStackAddr(const ICorDebugInfo::VarLoc & varLoc,
PT_CONTEXT pCtx);
bool GetNativeVarVal(const ICorDebugInfo::VarLoc & varLoc,
PT_CONTEXT pCtx,
SIZE_T * pVal1,
SIZE_T * pVal2
WIN64_ARG(SIZE_T cbSize));
bool SetNativeVarVal(const ICorDebugInfo::VarLoc & varLoc,
PT_CONTEXT pCtx,
SIZE_T val1,
SIZE_T val2
WIN64_ARG(SIZE_T cbSize));
#endif // #ifndef _NATIVE_VAR_ACCESSORS_H_
|