mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
[NTOS:MM] Save caller address when tracing PFNs
This commit is contained in:
parent
aae161d061
commit
146337cc50
2 changed files with 6 additions and 1 deletions
|
@ -275,7 +275,7 @@ void
|
||||||
MI_SET_PROCESS_USTR(PUNICODE_STRING ustr)
|
MI_SET_PROCESS_USTR(PUNICODE_STRING ustr)
|
||||||
{
|
{
|
||||||
PWSTR pos, strEnd;
|
PWSTR pos, strEnd;
|
||||||
int i;
|
ULONG i;
|
||||||
|
|
||||||
if (!ustr->Buffer || ustr->Length == 0)
|
if (!ustr->Buffer || ustr->Length == 0)
|
||||||
{
|
{
|
||||||
|
@ -407,6 +407,7 @@ typedef struct _MMPFN
|
||||||
MI_PFN_USAGES PfnUsage;
|
MI_PFN_USAGES PfnUsage;
|
||||||
CHAR ProcessName[16];
|
CHAR ProcessName[16];
|
||||||
#define MI_SET_PFN_PROCESS_NAME(pfn, x) memcpy(pfn->ProcessName, x, min(sizeof(x), sizeof(pfn->ProcessName)))
|
#define MI_SET_PFN_PROCESS_NAME(pfn, x) memcpy(pfn->ProcessName, x, min(sizeof(x), sizeof(pfn->ProcessName)))
|
||||||
|
PVOID CallSite;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// HACK until WS lists are supported
|
// HACK until WS lists are supported
|
||||||
|
|
|
@ -254,6 +254,7 @@ MiUnlinkFreeOrZeroedPage(IN PMMPFN Entry)
|
||||||
ASSERT(MI_PFN_CURRENT_USAGE != MI_USAGE_NOT_SET);
|
ASSERT(MI_PFN_CURRENT_USAGE != MI_USAGE_NOT_SET);
|
||||||
Entry->PfnUsage = MI_PFN_CURRENT_USAGE;
|
Entry->PfnUsage = MI_PFN_CURRENT_USAGE;
|
||||||
memcpy(Entry->ProcessName, MI_PFN_CURRENT_PROCESS_NAME, 16);
|
memcpy(Entry->ProcessName, MI_PFN_CURRENT_PROCESS_NAME, 16);
|
||||||
|
Entry->CallSite = _ReturnAddress();
|
||||||
MI_PFN_CURRENT_USAGE = MI_USAGE_NOT_SET;
|
MI_PFN_CURRENT_USAGE = MI_USAGE_NOT_SET;
|
||||||
MI_SET_PROCESS2("Not Set");
|
MI_SET_PROCESS2("Not Set");
|
||||||
#endif
|
#endif
|
||||||
|
@ -462,6 +463,7 @@ MiRemovePageByColor(IN PFN_NUMBER PageIndex,
|
||||||
ASSERT(MI_PFN_CURRENT_USAGE != MI_USAGE_NOT_SET);
|
ASSERT(MI_PFN_CURRENT_USAGE != MI_USAGE_NOT_SET);
|
||||||
Pfn1->PfnUsage = MI_PFN_CURRENT_USAGE;
|
Pfn1->PfnUsage = MI_PFN_CURRENT_USAGE;
|
||||||
memcpy(Pfn1->ProcessName, MI_PFN_CURRENT_PROCESS_NAME, 16);
|
memcpy(Pfn1->ProcessName, MI_PFN_CURRENT_PROCESS_NAME, 16);
|
||||||
|
Pfn1->CallSite = _ReturnAddress();
|
||||||
MI_PFN_CURRENT_USAGE = MI_USAGE_NOT_SET;
|
MI_PFN_CURRENT_USAGE = MI_USAGE_NOT_SET;
|
||||||
MI_SET_PROCESS2("Not Set");
|
MI_SET_PROCESS2("Not Set");
|
||||||
#endif
|
#endif
|
||||||
|
@ -710,6 +712,7 @@ MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
|
||||||
#if MI_TRACE_PFNS
|
#if MI_TRACE_PFNS
|
||||||
Pfn1->PfnUsage = MI_USAGE_FREE_PAGE;
|
Pfn1->PfnUsage = MI_USAGE_FREE_PAGE;
|
||||||
RtlZeroMemory(Pfn1->ProcessName, 16);
|
RtlZeroMemory(Pfn1->ProcessName, 16);
|
||||||
|
Pfn1->CallSite = NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -940,6 +943,7 @@ MiInsertPageInList(IN PMMPFNLIST ListHead,
|
||||||
ASSERT(MI_PFN_CURRENT_USAGE == MI_USAGE_NOT_SET);
|
ASSERT(MI_PFN_CURRENT_USAGE == MI_USAGE_NOT_SET);
|
||||||
Pfn1->PfnUsage = MI_USAGE_FREE_PAGE;
|
Pfn1->PfnUsage = MI_USAGE_FREE_PAGE;
|
||||||
RtlZeroMemory(Pfn1->ProcessName, 16);
|
RtlZeroMemory(Pfn1->ProcessName, 16);
|
||||||
|
Pfn1->CallSite = NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (ListName == ModifiedPageList)
|
else if (ListName == ModifiedPageList)
|
||||||
|
|
Loading…
Reference in a new issue