blob: b3ee7bba0b531cbe68132803d4a51601c491a485 (
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
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more 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_
|