Finally, use the correct implementation for RtlAssert().

In testbots, the behavior will be the following:
On prompt, sysreg will always issue a 'break once' instruction. In umode, where kdbg isn't instructed to handle breakpoint, this will lead to application being killed. With a lot of noise. This matches previous behavior.
In kmode, where kdbg handles breakpoints, sysreg2 will ask for a bt and will reboot the VM. As it was done previously.

The testbots already have the newest available sysreg2 revision.

This was made possible thanks to the help of Stefan and Thomas.
It was also made possible thanks to the commits:
- in trunk: r68899, r68905, r68917
- in project-tools: r2074, r2232

CORE-10088 #resolve #comment Fixed with r68918

svn path=/trunk/; revision=68918
This commit is contained in:
Pierre Schweitzer 2015-09-02 20:18:42 +00:00
parent db71d8393e
commit e3825569ca

View file

@ -25,7 +25,6 @@ RtlAssert(IN PVOID FailedAssertion,
IN ULONG LineNumber, IN ULONG LineNumber,
IN PCHAR Message OPTIONAL) IN PCHAR Message OPTIONAL)
{ {
#if 0 // Disabled until sysreg can handle debug prompts
CHAR Action[2]; CHAR Action[2];
CONTEXT Context; CONTEXT Context;
@ -97,23 +96,4 @@ RtlAssert(IN PVOID FailedAssertion,
/* Shouldn't get here */ /* Shouldn't get here */
DbgBreakPoint(); DbgBreakPoint();
ZwTerminateProcess(ZwCurrentProcess(), STATUS_UNSUCCESSFUL); ZwTerminateProcess(ZwCurrentProcess(), STATUS_UNSUCCESSFUL);
#else
if (NULL != Message)
{
DbgPrint("Assertion \'%s\' failed at %s line %u: %s\n",
(PCHAR)FailedAssertion,
(PCHAR)FileName,
LineNumber,
Message);
}
else
{
DbgPrint("Assertion \'%s\' failed at %s line %u\n",
(PCHAR)FailedAssertion,
(PCHAR)FileName,
LineNumber);
}
DbgBreakPoint();
#endif
} }