[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 2/4] Add more logging to xencons_tty in debug builds
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/tty/tty.c | 60 ++++++++++++++++++++++++++++++++++ vs2017/xencons_tty/xencons_tty.vcxproj | 2 +- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/tty/tty.c b/src/tty/tty.c index 7d97df5..a6c15e9 100644 --- a/src/tty/tty.c +++ b/src/tty/tty.c @@ -34,6 +34,10 @@ #include <strsafe.h> #include <userenv.h> +#define stringify_literal(_text) #_text +#define stringify(_text) stringify_literal(_text) +#define __MODULE__ stringify(PROJECT) + typedef struct _TTY_STREAM { HANDLE Read; HANDLE Write; @@ -54,6 +58,54 @@ typedef struct _TTY_CONTEXT { TTY_CONTEXT TtyContext; +#if DBG + +static VOID +#pragma prefast(suppress:6262) // Function uses '1036' bytes of stack: exceeds /analyze:stacksize'1024' +__Log( + IN const CHAR *Format, + IN ... + ) +{ + CHAR Buffer[MAXIMUM_BUFFER_SIZE]; + va_list Arguments; + size_t Length; + HRESULT Result; + + va_start(Arguments, Format); + Result = StringCchVPrintfA(Buffer, + MAXIMUM_BUFFER_SIZE, + Format, + Arguments); + va_end(Arguments); + + if (Result != S_OK && Result != STRSAFE_E_INSUFFICIENT_BUFFER) + return; + + Result = StringCchLengthA(Buffer, MAXIMUM_BUFFER_SIZE, &Length); + if (Result != S_OK) + return; + + Length = __min(MAXIMUM_BUFFER_SIZE - 1, Length + 2); + + __analysis_assume(Length < MAXIMUM_BUFFER_SIZE); + __analysis_assume(Length >= 2); + Buffer[Length] = '\0'; + Buffer[Length - 1] = '\n'; + Buffer[Length - 2] = '\r'; + + OutputDebugString(Buffer); +} + +#define Log(_Format, ...) \ + __Log(__MODULE__ "|" __FUNCTION__ ": " _Format, __VA_ARGS__) + +#else + +#define Log(_Format, ...) (VOID)0; + +#endif + static BOOL CreateChild( VOID @@ -314,6 +366,7 @@ TtyIn( UNREFERENCED_PARAMETER(Argument); + Log("=====>"); for (;;) { DWORD Read; CHAR Buffer[MAXIMUM_BUFFER_SIZE]; @@ -345,6 +398,7 @@ TtyIn( break; } } + Log("<====="); return 0; } @@ -358,6 +412,7 @@ TtyOut( UNREFERENCED_PARAMETER(Argument); + Log("=====>"); for (;;) { DWORD Read; DWORD Written; @@ -383,6 +438,7 @@ TtyOut( if (!Success) break; } + Log("<====="); return 0; } @@ -402,6 +458,8 @@ _tmain( UNREFERENCED_PARAMETER(argc); UNREFERENCED_PARAMETER(argv); + Log("=====>"); + if (!WaitNamedPipe(PIPE_NAME, NMPWAIT_USE_DEFAULT_WAIT)) ExitProcess(1); @@ -510,4 +568,6 @@ _tmain( CloseHandle(Handle[Index]); CloseHandle(Context->ProcessInfo.hProcess); + + Log("<====="); } diff --git a/vs2017/xencons_tty/xencons_tty.vcxproj b/vs2017/xencons_tty/xencons_tty.vcxproj index 18ad81b..623595c 100644 --- a/vs2017/xencons_tty/xencons_tty.vcxproj +++ b/vs2017/xencons_tty/xencons_tty.vcxproj @@ -20,7 +20,7 @@ <ItemDefinitionGroup> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>PROJECT=$(ProjectName);WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WarningLevel>EnableAllWarnings</WarningLevel> <DisableSpecificWarnings>4127;4711;4548;4820;4668;4255;5032;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings> <MultiProcessorCompilation>true</MultiProcessorCompilation> -- 2.16.2.windows.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |