summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Au <andrewau@microsoft.com>2018-05-24 15:52:32 -0700
committerAndrew Au <cshung@gmail.com>2018-11-06 18:34:47 -0800
commit6a9384827f7e1059bec5e246425e46cc7f3fc140 (patch)
tree9ee511bd27581e6023486c4a5ab4cd084d976fc6
parent8d6583e38f4e9b00ec21666225760a0df97afaec (diff)
downloadcoreclr-6a9384827f7e1059bec5e246425e46cc7f3fc140.tar.gz
coreclr-6a9384827f7e1059bec5e246425e46cc7f3fc140.tar.bz2
coreclr-6a9384827f7e1059bec5e246425e46cc7f3fc140.zip
Removing unnecessary hacks
-rw-r--r--src/debug/di/divalue.cpp6
-rw-r--r--src/debug/di/process.cpp2
-rw-r--r--src/debug/di/rspriv.h94
-rw-r--r--src/debug/di/shimevents.cpp2
-rw-r--r--src/debug/ee/controller.cpp21
-rw-r--r--src/debug/ee/controller.h2
-rw-r--r--src/debug/ee/debugger.cpp14
-rw-r--r--src/debug/ee/debugger.h2
-rw-r--r--src/debug/ee/rcthread.cpp2
-rw-r--r--src/utilcode/log.cpp120
-rw-r--r--src/vm/debugdebugger.cpp1
11 files changed, 82 insertions, 184 deletions
diff --git a/src/debug/di/divalue.cpp b/src/debug/di/divalue.cpp
index e8975ecadd..59cd382085 100644
--- a/src/debug/di/divalue.cpp
+++ b/src/debug/di/divalue.cpp
@@ -427,11 +427,7 @@ HRESULT CordbValue::InternalCreateHandle(CorDebugHandleType handleType,
*ppHandle = NULL;
- if (handleType == 3)
- {
- fStrong = 2;
- }
- else if (handleType == HANDLE_STRONG)
+ if (handleType == HANDLE_STRONG)
{
fStrong = TRUE;
}
diff --git a/src/debug/di/process.cpp b/src/debug/di/process.cpp
index 04f63f830a..1ab0724c81 100644
--- a/src/debug/di/process.cpp
+++ b/src/debug/di/process.cpp
@@ -938,7 +938,6 @@ CordbProcess::CordbProcess(ULONG64 clrInstanceId,
m_syncCompleteReceived(false),
m_pShim(pShim),
m_userThreads(11),
- m_dataBreakpoints(4),
m_oddSync(false),
#ifdef FEATURE_INTEROP_DEBUGGING
m_unmanagedThreads(11),
@@ -1304,7 +1303,6 @@ void CordbProcess::NeuterChildren()
// Sweep neuter lists.
m_ExitNeuterList.NeuterAndClear(this);
m_ContinueNeuterList.NeuterAndClear(this);
- m_dataBreakpoints.NeuterAndClear(GetProcessLock());
m_userThreads.NeuterAndClear(GetProcessLock());
diff --git a/src/debug/di/rspriv.h b/src/debug/di/rspriv.h
index 868d6f6d01..a9f5893363 100644
--- a/src/debug/di/rspriv.h
+++ b/src/debug/di/rspriv.h
@@ -82,7 +82,6 @@ class CordbInternalFrame;
class CordbContext;
class CordbThread;
class CordbVariableHome;
-class CordbValueBreakpoint;
#ifdef FEATURE_INTEROP_DEBUGGING
class CordbUnmanagedThread;
@@ -144,32 +143,6 @@ template <class T>
class CordbSafeHashTable;
-typedef struct _DR7 *PDR7;
-typedef struct _DR7 {
- DWORD L0 : 1;
- DWORD G0 : 1;
- DWORD L1 : 1;
- DWORD G1 : 1;
- DWORD L2 : 1;
- DWORD G2 : 1;
- DWORD L3 : 1;
- DWORD G3 : 1;
- DWORD LE : 1;
- DWORD GE : 1;
- DWORD Pad1 : 3;
- DWORD GD : 1;
- DWORD Pad2 : 1;
- DWORD Pad3 : 1;
- DWORD Rwe0 : 2;
- DWORD Len0 : 2;
- DWORD Rwe1 : 2;
- DWORD Len1 : 2;
- DWORD Rwe2 : 2;
- DWORD Len2 : 2;
- DWORD Rwe3 : 2;
- DWORD Len3 : 2;
-} DR7;
-
//---------------------------------------------------------------------------------------
//
// This is an encapsulation of the information necessary to connect to the debugger proxy on a remote machine.
@@ -3832,8 +3805,6 @@ private:
// This is just used for backwards compat.
CORDB_ADDRESS m_clrInstanceId;
- CordbSafeHashTable<CordbValueBreakpoint> m_dataBreakpoints;
-
// List of things that get neutered on process exit and Continue respectively.
NeuterList m_ExitNeuterList;
NeuterList m_ContinueNeuterList;
@@ -8817,18 +8788,14 @@ public:
};
/* ------------------------------------------------------------------------- *
- * Value Breakpoint class
- * ------------------------------------------------------------------------- */
+* Value Breakpoint class
+* ------------------------------------------------------------------------- */
class CordbValueBreakpoint : public CordbBreakpoint,
- public ICorDebugValueBreakpoint
+ public ICorDebugValueBreakpoint
{
public:
- CordbValueBreakpoint(unsigned int index, CordbValue *pValue, CordbProcess* pProcess): CordbBreakpoint(pProcess, CordbBreakpointType::CBT_VALUE)
- {
- m_value = pValue;
- m_index = index;
- }
+ CordbValueBreakpoint(CordbValue *pValue);
#ifdef _DEBUG
@@ -8847,43 +8814,14 @@ public:
{
return (BaseRelease());
}
- COM_METHOD QueryInterface(REFIID riid, void **ppInterface)
- {
- if (riid == IID_ICorDebugValueBreakpoint)
- {
- *ppInterface = static_cast<ICorDebugValueBreakpoint*>(this);
- }
- else if (riid == IID_ICorDebugBreakpoint)
- {
- *ppInterface = static_cast<ICorDebugBreakpoint*>(static_cast<CordbBreakpoint*>(this));
- }
- else if (riid == IID_IUnknown)
- {
- *ppInterface = static_cast<IUnknown *>(static_cast<ICorDebugValueBreakpoint*>(this));
- }
- else
- {
- return E_NOINTERFACE;
- }
-
- ExternalAddRef();
- return S_OK;
- }
+ COM_METHOD QueryInterface(REFIID riid, void **ppInterface);
//-----------------------------------------------------------
// ICorDebugValueBreakpoint
//-----------------------------------------------------------
- COM_METHOD GetValue(ICorDebugValue **ppValue)
- {
- return S_OK;
- }
-
- COM_METHOD Activate(BOOL bActive)
- {
- return S_OK;
- }
-
+ COM_METHOD GetValue(ICorDebugValue **ppValue);
+ COM_METHOD Activate(BOOL bActive);
COM_METHOD IsActive(BOOL *pbActive)
{
VALIDATE_POINTER_TO_OBJECT(pbActive, BOOL *);
@@ -8895,25 +8833,15 @@ public:
// Non-COM methods
//-----------------------------------------------------------
- void Disconnect()
- {
- }
-
- unsigned int GetIndex()
- {
- return m_index;
- }
+ void Disconnect();
public:
- CordbValue *m_value;
-
-private:
- unsigned int m_index;
+ CordbValue * m_value;
};
/* ------------------------------------------------------------------------- *
- * Generic Value class
- * ------------------------------------------------------------------------- */
+* Generic Value class
+* ------------------------------------------------------------------------- */
class CordbGenericValue : public CordbValue, public ICorDebugGenericValue, public ICorDebugValue2, public ICorDebugValue3
{
diff --git a/src/debug/di/shimevents.cpp b/src/debug/di/shimevents.cpp
index 15f43163a0..a2d0ea681f 100644
--- a/src/debug/di/shimevents.cpp
+++ b/src/debug/di/shimevents.cpp
@@ -78,7 +78,7 @@ ICorDebugManagedCallback3 * ManagedEvent::DispatchArgs::GetCallback3()
return m_pCallback3;
}
-// trivial accessor to get callback 3
+// trivial accessor to get callback 4
ICorDebugManagedCallback4 * ManagedEvent::DispatchArgs::GetCallback4()
{
return m_pCallback4;
diff --git a/src/debug/ee/controller.cpp b/src/debug/ee/controller.cpp
index 7b14244064..5ae9a9596b 100644
--- a/src/debug/ee/controller.cpp
+++ b/src/debug/ee/controller.cpp
@@ -46,6 +46,7 @@ DebuggerControllerPage *DebuggerController::g_protections = NULL;
CrstStatic DebuggerController::g_criticalSection;
int DebuggerController::g_cTotalMethodEnter = 0;
+
// Is this patch at a position at which it's safe to take a stack?
bool DebuggerControllerPatch::IsSafeForStackTrace()
{
@@ -3026,26 +3027,6 @@ DPOSS_ACTION DebuggerController::DispatchPatchOrSingleStep(Thread *thread, CONTE
context->Dr2 = c.Dr2;
context->Dr3 = c.Dr3;
- //if (context->Dr0 != NULL && DebuggerDataBreakpoint::g_DataBreakpointCount == 0)
- //{
- // DebuggerDataBreakpoint::CreateDebuggerDataBreakpoint(thread, thread->GetDomain(), context);
- //}
-
- //if (context->Dr1 != NULL && DebuggerDataBreakpoint::g_DataBreakpointCount == 1)
- //{
- // DebuggerDataBreakpoint::CreateDebuggerDataBreakpoint(thread, thread->GetDomain(), context);
- //}
-
- //if (context->Dr2 != NULL && DebuggerDataBreakpoint::g_DataBreakpointCount == 2)
- //{
- // DebuggerDataBreakpoint::CreateDebuggerDataBreakpoint(thread, thread->GetDomain(), context);
- //}
-
- //if (context->Dr3 != NULL && DebuggerDataBreakpoint::g_DataBreakpointCount == 3)
- //{
- // DebuggerDataBreakpoint::CreateDebuggerDataBreakpoint(thread, thread->GetDomain(), context);
- //}
-
if (!atSafePlace)
g_pDebugger->DecThreadsAtUnsafePlaces();
diff --git a/src/debug/ee/controller.h b/src/debug/ee/controller.h
index 5a469810b3..4d91d7d915 100644
--- a/src/debug/ee/controller.h
+++ b/src/debug/ee/controller.h
@@ -991,7 +991,7 @@ inline void VerifyExecutableAddress(const BYTE* address)
// DebuggerController: DebuggerController serves
// both as a static class that dispatches exceptions coming from the
-// EE, and as an abstract base class for the five classes that derive
+// EE, and as an abstract base class for the five classes that derrive
// from it.
class DebuggerController
{
diff --git a/src/debug/ee/debugger.cpp b/src/debug/ee/debugger.cpp
index 1099032844..8439e0fc78 100644
--- a/src/debug/ee/debugger.cpp
+++ b/src/debug/ee/debugger.cpp
@@ -11461,7 +11461,7 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent)
Object * pObject = (Object*)pEvent->CreateHandle.objectToken;
OBJECTREF objref = ObjectToOBJECTREF(pObject);
AppDomain * pAppDomain = pEvent->vmAppDomain.GetRawPtr();
- int fStrong = (int) pEvent->CreateHandle.fStrong;
+ BOOL fStrong = pEvent->CreateHandle.fStrong;
OBJECTHANDLE objectHandle;
// This is a synchronous event (reply required)
@@ -11482,10 +11482,6 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent)
// create strong handle
objectHandle = pAppDomain->CreateStrongHandle(objref);
}
- else if (fStrong == 2)
- {
- objectHandle = pAppDomain->CreatePinningHandle(objref);
- }
else
{
// create the weak long handle
@@ -11754,12 +11750,8 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent)
case DB_IPCE_GET_CONTAINER:
{
DebuggerIPCEvent * pResult = m_pRCThread->GetIPCEventReceiveBuffer();
- // TODO, databp, replace with the right find_object call
- pResult->GetContainerResult.answer = ((void*)(((long long)pEvent->GetContainer.interiorPointer) - sizeof(void*)));
-
- // This is the right code for calling the method in GC, but that code has a bug such that it does not work in this scenario
- // Object *pObject = GCHeapUtilities::GetGCHeap()->GetContainingObject(pEvent->GetContainer.interiorPointer, false);
- // pResult->GetContainerResult.answer = pObject;
+ Object *pObject = GCHeapUtilities::GetGCHeap()->GetContainingObject(pEvent->GetContainer.interiorPointer, false);
+ pResult->GetContainerResult.answer = pObject;
InitIPCEvent(pResult, DB_IPCE_GET_CONTAINER_RESULT, NULL, NULL);
pResult->hr = S_OK;
m_pRCThread->SendIPCReply();
diff --git a/src/debug/ee/debugger.h b/src/debug/ee/debugger.h
index ac0f7be9f3..10d62d6369 100644
--- a/src/debug/ee/debugger.h
+++ b/src/debug/ee/debugger.h
@@ -418,7 +418,7 @@ HRESULT ValidateObject(Object *objPtr);
//-----------------------------------------------------------------------------
// Execution control needs several ways to get at the context of a thread
-// stopped in managed code (stepping, setip, func-eval).
+// stopped in mangaged code (stepping, setip, func-eval).
// We want to abstract away a few things:
// - active: this thread is stopped at a patch
// - inactive: this threads was managed suspended somewhere in jitted code
diff --git a/src/debug/ee/rcthread.cpp b/src/debug/ee/rcthread.cpp
index 200e91e50b..00a2fdcfca 100644
--- a/src/debug/ee/rcthread.cpp
+++ b/src/debug/ee/rcthread.cpp
@@ -13,6 +13,7 @@
#include "stdafx.h"
#include "threadsuspend.h"
#ifndef FEATURE_PAL
+
#include "securitywrapper.h"
#endif
#include <aclapi.h>
@@ -1795,6 +1796,7 @@ HRESULT DebuggerRCThread::SendIPCEvent()
}
}
+
PRECONDITION(ThisMaybeHelperThread());
}
CONTRACTL_END;
diff --git a/src/utilcode/log.cpp b/src/utilcode/log.cpp
index 03b6b599bf..bbe5d0f188 100644
--- a/src/utilcode/log.cpp
+++ b/src/utilcode/log.cpp
@@ -31,33 +31,32 @@
#define LOG_ENABLE 0x0040
-static DWORD LogFlags = 0;
-//static DWORD LogFlags = LOG_ENABLE | LOG_ENABLE_FILE_LOGGING | LOG_ENABLE_DEBUGGER_LOGGING;
+static DWORD LogFlags = 0;
static CQuickWSTR szLogFileName;
-static HANDLE LogFileHandle = INVALID_HANDLE_VALUE;
-static MUTEX_COOKIE LogFileMutex = 0;
-static DWORD LogFacilityMask = LF_ALL;
-static DWORD LogFacilityMask2 = 0;
-static DWORD LogVMLevel = LL_EVERYTHING;
- // <TODO>@todo FIX should probably only display warnings and above by default</TODO>
+static HANDLE LogFileHandle = INVALID_HANDLE_VALUE;
+static MUTEX_COOKIE LogFileMutex = 0;
+static DWORD LogFacilityMask = LF_ALL;
+static DWORD LogFacilityMask2 = 0;
+static DWORD LogVMLevel = LL_INFO100;
+// <TODO>@todo FIX should probably only display warnings and above by default</TODO>
VOID InitLogging()
{
STATIC_CONTRACT_NOTHROW;
-
- // <TODO>FIX bit of a workaround for now, check for the log file in the
- // registry and if there, turn on file logging VPM</TODO>
-
- LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogEnable, LOG_ENABLE);
+
+ // <TODO>FIX bit of a workaround for now, check for the log file in the
+ // registry and if there, turn on file logging VPM</TODO>
+
+ LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogEnable, LOG_ENABLE);
LogFacilityMask = REGUTIL::GetConfigDWORD_DontUse_(CLRConfig::INTERNAL_LogFacility, LogFacilityMask) | LF_ALWAYS;
LogVMLevel = REGUTIL::GetConfigDWORD_DontUse_(CLRConfig::EXTERNAL_LogLevel, LogVMLevel);
LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogFileAppend, LOG_ENABLE_APPEND_FILE);
- LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogFlushFile, LOG_ENABLE_FLUSH_FILE);
+ LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogFlushFile, LOG_ENABLE_FLUSH_FILE);
LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogToDebugger, LOG_ENABLE_DEBUGGER_LOGGING);
- LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogToFile, LOG_ENABLE_FILE_LOGGING);
- LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogToConsole, LOG_ENABLE_CONSOLE_LOGGING);
-
+ LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogToFile, LOG_ENABLE_FILE_LOGGING);
+ LogFlags |= REGUTIL::GetConfigFlag_DontUse_(CLRConfig::INTERNAL_LogToConsole, LOG_ENABLE_CONSOLE_LOGGING);
+
LogFacilityMask2 = REGUTIL::GetConfigDWORD_DontUse_(CLRConfig::INTERNAL_LogFacility2, LogFacilityMask2) | LF_ALWAYS;
if (SUCCEEDED(szLogFileName.ReSizeNoThrow(MAX_LONGPATH)))
@@ -94,10 +93,10 @@ VOID InitLogging()
FILE_SHARE_READ,
NULL,
fdwCreate,
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | ((LogFlags & LOG_ENABLE_FLUSH_FILE) ? FILE_FLAG_WRITE_THROUGH : 0),
+ FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | ((LogFlags & LOG_ENABLE_FLUSH_FILE) ? FILE_FLAG_WRITE_THROUGH : 0),
NULL);
- if(0 == LogFileMutex)
+ if (0 == LogFileMutex)
{
LogFileMutex = ClrCreateMutex(
NULL,
@@ -106,7 +105,7 @@ VOID InitLogging()
_ASSERTE(LogFileMutex != 0);
}
- // Some other logging may be going on, try again with another file name
+ // Some other logging may be going on, try again with another file name
if (LogFileHandle == INVALID_HANDLE_VALUE && wcslen(szLogFileName.Ptr()) + 3 <= szLogFileName.Size())
{
WCHAR* ptr = szLogFileName.Ptr() + wcslen(szLogFileName.Ptr()) + 1;
@@ -114,7 +113,7 @@ VOID InitLogging()
ptr[0] = W('0');
ptr[1] = 0;
- for(int i = 0; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
LogFileHandle = WszCreateFile(
szLogFileName.Ptr(),
@@ -122,7 +121,7 @@ VOID InitLogging()
FILE_SHARE_READ,
NULL,
fdwCreate,
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | ((LogFlags & LOG_ENABLE_FLUSH_FILE) ? FILE_FLAG_WRITE_THROUGH : 0),
+ FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN | ((LogFlags & LOG_ENABLE_FLUSH_FILE) ? FILE_FLAG_WRITE_THROUGH : 0),
NULL);
if (LogFileHandle != INVALID_HANDLE_VALUE)
break;
@@ -153,7 +152,7 @@ VOID InitLogging()
{
if (LogFlags & LOG_ENABLE_APPEND_FILE)
SetFilePointer(LogFileHandle, 0, NULL, FILE_END);
- LogSpew( LF_ALWAYS, FATALERROR, "************************ New Output *****************\n" );
+ LogSpew(LF_ALWAYS, FATALERROR, "************************ New Output *****************\n");
}
}
}
@@ -167,7 +166,7 @@ VOID EnterLogLock()
// rather hard to care about this, as we LOG all over the place.
CONTRACT_VIOLATION(TakesLockViolation);
- if(LogFileMutex != 0)
+ if (LogFileMutex != 0)
{
DWORD status;
status = ClrWaitForMutex(LogFileMutex, INFINITE, FALSE);
@@ -180,7 +179,7 @@ VOID LeaveLogLock()
STATIC_CONTRACT_NOTHROW;
STATIC_CONTRACT_GC_NOTRIGGER;
- if(LogFileMutex != 0)
+ if (LogFileMutex != 0)
{
BOOL success;
success = ClrReleaseMutex(LogFileMutex);
@@ -207,9 +206,9 @@ VOID FlushLogging() {
{
// We must take the lock, as an OS deadlock can occur between
// FlushFileBuffers and WriteFile.
- EnterLogLock();
- FlushFileBuffers( LogFileHandle );
- LeaveLogLock();
+ EnterLogLock();
+ FlushFileBuffers(LogFileHandle);
+ LeaveLogLock();
}
}
@@ -218,8 +217,8 @@ VOID ShutdownLogging()
STATIC_CONTRACT_NOTHROW;
if (LogFileHandle != INVALID_HANDLE_VALUE) {
- LogSpew( LF_ALWAYS, FATALERROR, "Logging shutting down\n");
- CloseHandle( LogFileHandle );
+ LogSpew(LF_ALWAYS, FATALERROR, "Logging shutting down\n");
+ CloseHandle(LogFileHandle);
}
LogFileHandle = INVALID_HANDLE_VALUE;
bLoggingInitialized = false;
@@ -240,8 +239,8 @@ bool LoggingOn(DWORD facility, DWORD level) {
_ASSERTE(LogFacilityMask & LF_ALWAYS); // LF_ALWAYS should always be enabled
return((LogFlags & LOG_ENABLE) &&
- level <= LogVMLevel &&
- (facility & LogFacilityMask));
+ level <= LogVMLevel &&
+ (facility & LogFacilityMask));
}
bool Logging2On(DWORD facility2, DWORD level) {
@@ -250,8 +249,8 @@ bool Logging2On(DWORD facility2, DWORD level) {
_ASSERTE(LogFacilityMask2 & LF_ALWAYS); // LF_ALWAYS should always be enabled
return((LogFlags & LOG_ENABLE) &&
- level <= LogVMLevel &&
- (facility2 & LogFacilityMask2));
+ level <= LogVMLevel &&
+ (facility2 & LogFacilityMask2));
}
//
@@ -262,7 +261,7 @@ VOID LogSpewValist(DWORD facility, DWORD level, const char *fmt, va_list args)
SCAN_IGNORE_FAULT; // calls to new (nothrow) in logging code are OK
STATIC_CONTRACT_NOTHROW;
STATIC_CONTRACT_GC_NOTRIGGER;
-
+
if (!LoggingOn(facility, level))
return;
@@ -277,7 +276,7 @@ VOID LogSpew2Valist(DWORD facility2, DWORD level, const char *fmt, va_list args)
SCAN_IGNORE_FAULT; // calls to new (nothrow) in logging code are OK
STATIC_CONTRACT_NOTHROW;
STATIC_CONTRACT_GC_NOTRIGGER;
-
+
if (!Logging2On(facility2, level))
return;
@@ -292,7 +291,7 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
SCAN_IGNORE_FAULT; // calls to new (nothrow) in logging code are OK
STATIC_CONTRACT_NOTHROW;
STATIC_CONTRACT_GC_NOTRIGGER;
-
+
DEBUG_ONLY_FUNCTION;
// We can't do heap allocations at all. The current thread may have
@@ -315,8 +314,8 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
EnterLogLock();
- char * pBuffer = &rgchBuffer[0];
- DWORD buflen = 0;
+ char * pBuffer = &rgchBuffer[0];
+ DWORD buflen = 0;
DWORD written;
static bool needsPrefix = true;
@@ -324,19 +323,20 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
if (needsPrefix)
buflen = sprintf_s(pBuffer, COUNTOF(rgchBuffer), "TID %04x: ", GetCurrentThreadId());
- needsPrefix = (fmt[strlen(fmt)-1] == '\n');
+ needsPrefix = (fmt[strlen(fmt) - 1] == '\n');
- int cCountWritten = _vsnprintf_s(&pBuffer[buflen], BUFFERSIZE-buflen, _TRUNCATE, fmt, args );
- pBuffer[BUFFERSIZE-1] = 0;
+ int cCountWritten = _vsnprintf_s(&pBuffer[buflen], BUFFERSIZE - buflen, _TRUNCATE, fmt, args);
+ pBuffer[BUFFERSIZE - 1] = 0;
if (cCountWritten < 0) {
buflen = BUFFERSIZE - 1;
- } else {
+ }
+ else {
buflen += cCountWritten;
}
// Its a little late for this, but at least you wont continue
// trashing your program...
- _ASSERTE((buflen < (DWORD) BUFFERSIZE) && "Log text is too long!") ;
+ _ASSERTE((buflen < (DWORD)BUFFERSIZE) && "Log text is too long!");
#if !PLATFORM_UNIX
//convert NL's to CR NL to fixup notepad
@@ -365,7 +365,7 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
{
WriteFile(LogFileHandle, pBuffer, buflen, &written, NULL);
if (LogFlags & LOG_ENABLE_FLUSH_FILE) {
- FlushFileBuffers( LogFileHandle );
+ FlushFileBuffers(LogFileHandle);
}
}
@@ -374,7 +374,7 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), pBuffer, buflen, &written, 0);
//<TODO>@TODO ...Unnecessary to flush console?</TODO>
if (LogFlags & LOG_ENABLE_FLUSH_FILE)
- FlushFileBuffers( GetStdHandle(STD_OUTPUT_HANDLE) );
+ FlushFileBuffers(GetStdHandle(STD_OUTPUT_HANDLE));
}
if (LogFlags & LOG_ENABLE_DEBUGGER_LOGGING)
@@ -385,12 +385,12 @@ VOID LogSpewAlwaysValist(const char *fmt, va_list args)
LeaveLogLock();
}
-VOID LogSpew(DWORD facility, DWORD level, const char *fmt, ... )
+VOID LogSpew(DWORD facility, DWORD level, const char *fmt, ...)
{
STATIC_CONTRACT_WRAPPER;
-
+
ENTER_SO_NOT_MAINLINE_CODE;
-
+
#ifdef SELF_NO_HOST
if (TRUE)
#else //!SELF_NO_HOST
@@ -399,7 +399,7 @@ VOID LogSpew(DWORD facility, DWORD level, const char *fmt, ... )
{
va_list args;
va_start(args, fmt);
- LogSpewValist (facility, level, fmt, args);
+ LogSpewValist(facility, level, fmt, args);
va_end(args);
}
else
@@ -407,16 +407,16 @@ VOID LogSpew(DWORD facility, DWORD level, const char *fmt, ... )
// Cannot acquire the required lock, as this would call back
// into the host. Eat the log message.
}
-
+
LEAVE_SO_NOT_MAINLINE_CODE;
}
-VOID LogSpew2(DWORD facility2, DWORD level, const char *fmt, ... )
+VOID LogSpew2(DWORD facility2, DWORD level, const char *fmt, ...)
{
STATIC_CONTRACT_WRAPPER;
-
+
ENTER_SO_NOT_MAINLINE_CODE;
-
+
#ifdef SELF_NO_HOST
if (TRUE)
#else //!SELF_NO_HOST
@@ -433,16 +433,16 @@ VOID LogSpew2(DWORD facility2, DWORD level, const char *fmt, ... )
// Cannot acquire the required lock, as this would call back
// into the host. Eat the log message.
}
-
+
LEAVE_SO_NOT_MAINLINE_CODE;
}
-VOID LogSpewAlways (const char *fmt, ... )
+VOID LogSpewAlways(const char *fmt, ...)
{
STATIC_CONTRACT_WRAPPER;
-
+
ENTER_SO_NOT_MAINLINE_CODE;
-
+
#ifdef SELF_NO_HOST
if (TRUE)
#else //!SELF_NO_HOST
@@ -451,7 +451,7 @@ VOID LogSpewAlways (const char *fmt, ... )
{
va_list args;
va_start(args, fmt);
- LogSpewValist (LF_ALWAYS, LL_ALWAYS, fmt, args);
+ LogSpewValist(LF_ALWAYS, LL_ALWAYS, fmt, args);
va_end(args);
}
else
@@ -459,7 +459,7 @@ VOID LogSpewAlways (const char *fmt, ... )
// Cannot acquire the required lock, as this would call back
// into the host. Eat the log message.
}
-
+
LEAVE_SO_NOT_MAINLINE_CODE;
}
diff --git a/src/vm/debugdebugger.cpp b/src/vm/debugdebugger.cpp
index ab05d63456..daadc91a0a 100644
--- a/src/vm/debugdebugger.cpp
+++ b/src/vm/debugdebugger.cpp
@@ -99,6 +99,7 @@ UINT_PTR FindMostRecentUserCodeOnStack(void)
return address;
}
+
// This does a user break, triggered by System.Diagnostics.Debugger.Break, or the IL opcode for break.
//
// Notes: