Logger: add function entrance logging
authorAlexander Aksenov <a.aksenov@samsung.com>
Mon, 22 Oct 2018 17:14:34 +0000 (20:14 +0300)
committerAlexander Aksenov <a.aksenov@samsung.com>
Tue, 30 Oct 2018 09:40:49 +0000 (12:40 +0300)
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
src/debug/netcoredbg/breakpoints.cpp
src/debug/netcoredbg/frames.cpp
src/debug/netcoredbg/manageddebugger.cpp
src/debug/netcoredbg/miprotocol.cpp
src/debug/netcoredbg/variables.cpp
src/debug/netcoredbg/vscodeprotocol.cpp

index fae365d..51eaa84 100644 (file)
@@ -7,6 +7,7 @@
 #include <mutex>
 #include <unordered_set>
 #include <fstream>
+#include "logger.h"
 
 
 Breakpoints::ManagedBreakpoint::ManagedBreakpoint() :
@@ -157,6 +158,8 @@ bool Breakpoints::HitEntry(ICorDebugThread *pThread, ICorDebugBreakpoint *pBreak
 
 void ManagedDebugger::InsertExceptionBreakpoint(const std::string &name, Breakpoint &breakpoint)
 {
+    LogFuncEntry();
+
     m_breakpoints.InsertExceptionBreakpoint(name, breakpoint);
 }
 
@@ -372,6 +375,8 @@ HRESULT ManagedDebugger::SetBreakpoints(
     const std::vector<SourceBreakpoint> &srcBreakpoints,
     std::vector<Breakpoint> &breakpoints)
 {
+    LogFuncEntry();
+
     return m_breakpoints.SetBreakpoints(m_pProcess, filename, srcBreakpoints, breakpoints);
 }
 
index e745d76..3f810a2 100644 (file)
@@ -16,6 +16,7 @@
 #include "typeprinter.h"
 #include "platform.h"
 #include "manageddebugger.h"
+#include "logger.h"
 
 
 HRESULT GetThreadsState(ICorDebugController *controller, std::vector<Thread> &threads)
@@ -392,6 +393,8 @@ static const char *GetInternalTypeName(CorDebugInternalFrameType frameType)
 
 HRESULT ManagedDebugger::GetStackTrace(ICorDebugThread *pThread, int startFrame, int levels, std::vector<StackFrame> &stackFrames, int &totalFrames)
 {
+    LogFuncEntry();
+
     HRESULT Status;
 
     DWORD threadId = 0;
index 82e7767..3af5df1 100644 (file)
@@ -15,6 +15,7 @@
 #include "platform.h"
 #include "typeprinter.h"
 #include "frames.h"
+#include "logger.h"
 
 // From dbgshim.h
 struct dbgshim_t
@@ -230,6 +231,8 @@ void ManagedDebugger::SetLastStoppedThread(ICorDebugThread *pThread)
 
 int ManagedDebugger::GetLastStoppedThreadId()
 {
+    LogFuncEntry();
+
     std::lock_guard<std::mutex> lock(m_lastStoppedThreadIdMutex);
     return m_lastStoppedThreadId;
 }
@@ -275,6 +278,8 @@ public:
 
         void HandleEvent(ICorDebugController *controller, const std::string &eventName)
         {
+            LogFuncEntry();
+
             std::string text = "Event received: '" + eventName + "'\n";
             m_debugger.m_protocol->EmitOutputEvent(OutputEvent(OutputConsole, text));
             controller->Continue(0);
@@ -287,6 +292,8 @@ public:
 
         virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, VOID** ppInterface)
         {
+            LogFuncEntry();
+
             if(riid == __uuidof(ICorDebugManagedCallback))
             {
                 *ppInterface = static_cast<ICorDebugManagedCallback*>(this);
@@ -313,11 +320,15 @@ public:
 
         virtual ULONG STDMETHODCALLTYPE AddRef()
         {
+            LogFuncEntry();
+
             return InterlockedIncrement((volatile LONG *) &m_refCount);
         }
 
         virtual ULONG STDMETHODCALLTYPE Release()
         {
+            LogFuncEntry();
+
             ULONG count = InterlockedDecrement((volatile LONG *) &m_refCount);
             if(count == 0)
             {
@@ -333,6 +344,8 @@ public:
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugBreakpoint *pBreakpoint)
         {
+            LogFuncEntry();
+
             if (m_debugger.m_evaluator.IsEvalRunning())
             {
                 pAppDomain->Continue(0);
@@ -387,6 +400,8 @@ public:
             /* [in] */ ICorDebugStepper *pStepper,
             /* [in] */ CorDebugStepReason reason)
         {
+            LogFuncEntry();
+
             DWORD threadId = 0;
             pThread->GetID(&threadId);
 
@@ -417,13 +432,18 @@ public:
         virtual HRESULT STDMETHODCALLTYPE Break(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *thread)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE Exception(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ BOOL unhandled)
         {
+            LogFuncEntry();
+
             std::string excType;
             std::string excModule;
             GetExceptionInfo(pThread, excType, excModule);
@@ -475,6 +495,8 @@ public:
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugEval *pEval)
         {
+            LogFuncEntry();
+
             m_debugger.m_evaluator.NotifyEvalComplete(pThread, pEval);
             return S_OK;
         }
@@ -484,6 +506,8 @@ public:
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugEval *pEval)
         {
+            LogFuncEntry();
+
             m_debugger.m_evaluator.NotifyEvalComplete(pThread, pEval);
             return S_OK;
         }
@@ -491,6 +515,7 @@ public:
         virtual HRESULT STDMETHODCALLTYPE CreateProcess(
             /* [in] */ ICorDebugProcess *pProcess)
         {
+            LogFuncEntry();
             m_debugger.NotifyProcessCreated();
             pProcess->Continue(0);
             return S_OK;
@@ -499,6 +524,8 @@ public:
         virtual HRESULT STDMETHODCALLTYPE ExitProcess(
             /* [in] */ ICorDebugProcess *pProcess)
         {
+            LogFuncEntry();
+
             m_debugger.m_evaluator.NotifyEvalComplete(nullptr, nullptr);
             m_debugger.m_protocol->EmitExitedEvent(ExitedEvent(0));
             m_debugger.NotifyProcessExited();
@@ -510,6 +537,8 @@ public:
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *thread)
         {
+            LogFuncEntry();
+
             DWORD threadId = 0;
             thread->GetID(&threadId);
             m_debugger.m_protocol->EmitThreadEvent(ThreadEvent(ThreadStarted, threadId));
@@ -521,6 +550,8 @@ public:
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *thread)
         {
+            LogFuncEntry();
+
             m_debugger.m_evaluator.NotifyEvalComplete(thread, nullptr);
             DWORD threadId = 0;
             thread->GetID(&threadId);
@@ -533,6 +564,8 @@ public:
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugModule *pModule)
         {
+            LogFuncEntry();
+
             Module module;
 
             m_debugger.m_modules.TryLoadModuleSymbols(pModule, module);
@@ -553,23 +586,35 @@ public:
         virtual HRESULT STDMETHODCALLTYPE UnloadModule(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugModule *pModule)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE LoadClass(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugClass *c)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE UnloadClass(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugClass *c)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE DebuggerError(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ HRESULT errorHR,
             /* [in] */ DWORD errorCode)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE LogMessage(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
@@ -577,7 +622,10 @@ public:
             /* [in] */ LONG lLevel,
             /* [in] */ WCHAR *pLogSwitchName,
             /* [in] */ WCHAR *pMessage)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE LogSwitch(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
@@ -586,56 +634,86 @@ public:
             /* [in] */ ULONG ulReason,
             /* [in] */ WCHAR *pLogSwitchName,
             /* [in] */ WCHAR *pParentName)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE CreateAppDomain(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ ICorDebugAppDomain *pAppDomain)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE ExitAppDomain(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ ICorDebugAppDomain *pAppDomain)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE LoadAssembly(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugAssembly *pAssembly)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE UnloadAssembly(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugAssembly *pAssembly)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE ControlCTrap(
             /* [in] */ ICorDebugProcess *pProcess)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE NameChange(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *pThread)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugModule *pModule,
             /* [in] */ IStream *pSymbolStream)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugFunction *pFunction,
             /* [in] */ BOOL fAccurate)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE BreakpointSetError(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugBreakpoint *pBreakpoint,
             /* [in] */ DWORD dwError)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
 
         // ICorDebugManagedCallback2
@@ -646,23 +724,35 @@ public:
             /* [in] */ ICorDebugFunction *pOldFunction,
             /* [in] */ ICorDebugFunction *pNewFunction,
             /* [in] */ ULONG32 oldILOffset)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE CreateConnection(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ CONNID dwConnectionId,
             /* [in] */ WCHAR *pConnName)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE ChangeConnection(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ CONNID dwConnectionId)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE DestroyConnection(
             /* [in] */ ICorDebugProcess *pProcess,
             /* [in] */ CONNID dwConnectionId)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE Exception(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
@@ -672,6 +762,7 @@ public:
             /* [in] */ CorDebugExceptionCallbackType dwEventType,
             /* [in] */ DWORD dwFlags)
         {
+            LogFuncEntry();
           // TODO:
           // const char *cbTypeName;
           // switch(dwEventType)
@@ -692,19 +783,28 @@ public:
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType,
             /* [in] */ DWORD dwFlags)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete(
             /* [in] */ ICorDebugAppDomain *pAppDomain,
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugFunction *pFunction)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 
         virtual HRESULT STDMETHODCALLTYPE MDANotification(
             /* [in] */ ICorDebugController *pController,
             /* [in] */ ICorDebugThread *pThread,
             /* [in] */ ICorDebugMDA *pMDA)
-        { return E_NOTIMPL; }
+        {
+            LogFuncEntry();
+            return E_NOTIMPL;
+        }
 };
 
 ManagedDebugger::ManagedDebugger() :
@@ -733,6 +833,8 @@ ManagedDebugger::~ManagedDebugger()
 
 HRESULT ManagedDebugger::Initialize()
 {
+    LogFuncEntry();
+
     // TODO: Report capabilities and check client support
     m_startMethod = StartNone;
     m_protocol->EmitInitializedEvent();
@@ -741,6 +843,8 @@ HRESULT ManagedDebugger::Initialize()
 
 HRESULT ManagedDebugger::Attach(int pid)
 {
+    LogFuncEntry();
+
     m_startMethod = StartAttach;
     m_processId = pid;
     return S_OK;
@@ -748,6 +852,8 @@ HRESULT ManagedDebugger::Attach(int pid)
 
 HRESULT ManagedDebugger::Launch(std::string fileExec, std::vector<std::string> execArgs, bool stopAtEntry)
 {
+    LogFuncEntry();
+
     m_startMethod = StartLaunch;
     m_execPath = fileExec;
     m_execArgs = execArgs;
@@ -758,6 +864,8 @@ HRESULT ManagedDebugger::Launch(std::string fileExec, std::vector<std::string> e
 
 HRESULT ManagedDebugger::ConfigurationDone()
 {
+    LogFuncEntry();
+
     switch(m_startMethod)
     {
         case StartLaunch:
@@ -772,6 +880,8 @@ HRESULT ManagedDebugger::ConfigurationDone()
 
 HRESULT ManagedDebugger::Disconnect(DisconnectAction action)
 {
+    LogFuncEntry();
+
     bool terminate;
     switch(action)
     {
@@ -848,6 +958,8 @@ HRESULT ManagedDebugger::SetupStep(ICorDebugThread *pThread, Debugger::StepType
 
 HRESULT ManagedDebugger::StepCommand(int threadId, StepType stepType)
 {
+    LogFuncEntry();
+
     HRESULT Status;
     ToRelease<ICorDebugThread> pThread;
     IfFailRet(m_pProcess->GetThread(threadId, &pThread));
@@ -863,6 +975,8 @@ HRESULT ManagedDebugger::StepCommand(int threadId, StepType stepType)
 
 HRESULT ManagedDebugger::Continue()
 {
+    LogFuncEntry();
+
     if (!m_pProcess)
         return E_FAIL;
 
@@ -875,6 +989,8 @@ HRESULT ManagedDebugger::Continue()
 
 HRESULT ManagedDebugger::Pause()
 {
+    LogFuncEntry();
+
     if (!m_pProcess)
         return E_FAIL;
     HRESULT Status = m_pProcess->Stop(0);
@@ -927,6 +1043,8 @@ HRESULT ManagedDebugger::Pause()
 
 HRESULT ManagedDebugger::GetThreads(std::vector<Thread> &threads)
 {
+    LogFuncEntry();
+
     if (!m_pProcess)
         return E_FAIL;
     return GetThreadsState(m_pProcess, threads);
@@ -1052,6 +1170,8 @@ static std::string GetCLRPath(DWORD pid, int timeoutSec = 3)
 
 HRESULT ManagedDebugger::Startup(IUnknown *punk, DWORD pid)
 {
+    LogFuncEntry();
+
     HRESULT Status;
 
     ToRelease<ICorDebug> pCorDebug;
index f2a2ef8..e63a313 100644 (file)
@@ -13,6 +13,7 @@
 #include <iostream>
 #include <iomanip>
 
+#include "logger.h"
 
 
 using namespace std::placeholders;
@@ -155,6 +156,8 @@ HRESULT MIProtocol::PrintBreakpoint(const Breakpoint &b, std::string &output)
 
 void MIProtocol::EmitBreakpointEvent(BreakpointEvent event)
 {
+    LogFuncEntry();
+
     switch(event.reason)
     {
         case BreakpointChanged:
@@ -510,6 +513,8 @@ void MIProtocol::DeleteBreakpoints(const std::unordered_set<uint32_t> &ids)
 
 void MIProtocol::EmitStoppedEvent(StoppedEvent event)
 {
+    LogFuncEntry();
+
     std::string frameLocation;
     PrintFrameLocation(event.frame, frameLocation);
 
@@ -561,15 +566,20 @@ void MIProtocol::EmitStoppedEvent(StoppedEvent event)
 
 void MIProtocol::EmitExitedEvent(ExitedEvent event)
 {
+    LogFuncEntry();
+
     MIProtocol::Printf("*stopped,reason=\"exited\",exit-code=\"%i\"\n", event.exitCode);
 }
 
 void MIProtocol::EmitContinuedEvent()
 {
+    LogFuncEntry();
 }
 
 void MIProtocol::EmitThreadEvent(ThreadEvent event)
 {
+    LogFuncEntry();
+
     const char *reasonText = "";
     switch(event.reason)
     {
@@ -585,6 +595,8 @@ void MIProtocol::EmitThreadEvent(ThreadEvent event)
 
 void MIProtocol::EmitModuleEvent(ModuleEvent event)
 {
+    LogFuncEntry();
+
     switch(event.reason)
     {
         case ModuleNew:
@@ -606,6 +618,8 @@ void MIProtocol::EmitModuleEvent(ModuleEvent event)
 
 void MIProtocol::EmitOutputEvent(OutputEvent event)
 {
+    LogFuncEntry();
+
     if (event.source.empty())
         MIProtocol::Printf("=message,text=\"%s\",send-to=\"output-window\"\n",
             MIProtocol::EscapeMIValue(event.output).c_str());
index 68a3d1d..3631085 100644 (file)
@@ -16,6 +16,7 @@
 #include "valuewrite.h"
 #include "frames.h"
 #include "symbolreader.h"
+#include "logger.h"
 
 
 HRESULT Variables::GetNumChild(
@@ -139,6 +140,8 @@ HRESULT Variables::FetchFieldsAndProperties(
 
 int ManagedDebugger::GetNamedVariables(uint32_t variablesReference)
 {
+    LogFuncEntry();
+
     return m_variables.GetNamedVariables(variablesReference);
 }
 
@@ -157,6 +160,8 @@ HRESULT ManagedDebugger::GetVariables(
     int count,
     std::vector<Variable> &variables)
 {
+    LogFuncEntry();
+
     return m_variables.GetVariables(m_pProcess, variablesReference, filter, start, count, variables);
 }
 
@@ -268,6 +273,8 @@ HRESULT Variables::GetStackVariables(
 
 HRESULT ManagedDebugger::GetScopes(uint64_t frameId, std::vector<Scope> &scopes)
 {
+    LogFuncEntry();
+
     return m_variables.GetScopes(m_pProcess, frameId, scopes);
 }
 
@@ -401,6 +408,8 @@ HRESULT Variables::GetChildren(
 
 HRESULT ManagedDebugger::Evaluate(uint64_t frameId, const std::string &expression, Variable &variable, std::string &output)
 {
+    LogFuncEntry();
+
     return m_variables.Evaluate(m_pProcess, frameId, expression, variable, output);
 }
 
index f126564..9541906 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "torelease.h"
 #include "cputil.h"
+#include "logger.h"
 
 // for convenience
 using json = nlohmann::json;
@@ -75,6 +76,8 @@ void to_json(json &j, const Variable &v) {
 
 void VSCodeProtocol::EmitStoppedEvent(StoppedEvent event)
 {
+    LogFuncEntry();
+
     json body;
 
     switch(event.reason)
@@ -112,6 +115,7 @@ void VSCodeProtocol::EmitStoppedEvent(StoppedEvent event)
 
 void VSCodeProtocol::EmitExitedEvent(ExitedEvent event)
 {
+    LogFuncEntry();
     json body;
     body["exitCode"] = event.exitCode;
     EmitEvent("exited", body);
@@ -119,11 +123,13 @@ void VSCodeProtocol::EmitExitedEvent(ExitedEvent event)
 
 void VSCodeProtocol::EmitTerminatedEvent()
 {
+    LogFuncEntry();
     EmitEvent("terminated", json::object());
 }
 
 void VSCodeProtocol::EmitThreadEvent(ThreadEvent event)
 {
+    LogFuncEntry();
     json body;
 
     switch(event.reason)
@@ -143,6 +149,7 @@ void VSCodeProtocol::EmitThreadEvent(ThreadEvent event)
 
 void VSCodeProtocol::EmitModuleEvent(ModuleEvent event)
 {
+    LogFuncEntry();
     json body;
 
     switch(event.reason)
@@ -181,6 +188,7 @@ void VSCodeProtocol::EmitModuleEvent(ModuleEvent event)
 
 void VSCodeProtocol::EmitOutputEvent(OutputEvent event)
 {
+    LogFuncEntry();
     json body;
 
     switch(event.category)
@@ -203,6 +211,7 @@ void VSCodeProtocol::EmitOutputEvent(OutputEvent event)
 
 void VSCodeProtocol::EmitBreakpointEvent(BreakpointEvent event)
 {
+    LogFuncEntry();
     json body;
 
     switch(event.reason)
@@ -225,6 +234,7 @@ void VSCodeProtocol::EmitBreakpointEvent(BreakpointEvent event)
 
 void VSCodeProtocol::EmitInitializedEvent()
 {
+    LogFuncEntry();
     EmitEvent("initialized", json::object());
 }