Reviewed-by: Kostiantyn Kostiuk <[email protected]> On Mon, Sep 7, 2026 at 1:51 PM Marc-André Lureau < [email protected]> wrote:
> COMRegister and COMUnregister are invoked both from the MSI installer > (via DLLCOMRegister/rundll32) and from qemu-ga -s vss-install, where > stderr is typically not visible. Redirect stderr to > %SystemRoot%\Temp\qga-vss-install.log so that qga_debug output is > captured for post-install troubleshooting. > > Suggested-by: Konstantin Kostiuk <[email protected]> > Signed-off-by: Marc-André Lureau <[email protected]> > --- > qga/vss-win32/install.cpp | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp > index 9e8db79c122c..09d94edd4f53 100644 > --- a/qga/vss-win32/install.cpp > +++ b/qga/vss-win32/install.cpp > @@ -241,10 +241,27 @@ out: > return hr; > } > > +static void qga_vss_open_log(void) > +{ > + char path[MAX_PATH]; > + UINT n; > + > + n = GetSystemWindowsDirectoryA(path, sizeof(path)); > + if (n == 0 || n >= sizeof(path)) { > + return; > + } > + snprintf(path + n, sizeof(path) - n, > + "\\Temp\\qga-vss-install.log"); > + if (freopen(path, "a", stderr)) { > + setvbuf(stderr, NULL, _IONBF, 0); > + } > +} > + > /* Unregister this module from COM+ Applications Catalog */ > STDAPI COMUnregister(void); > STDAPI COMUnregister(void) > { > + qga_vss_open_log(); > qga_debug_begin; > > HRESULT hr; > @@ -260,6 +277,7 @@ out: > STDAPI COMRegister(void); > STDAPI COMRegister(void) > { > + qga_vss_open_log(); > qga_debug_begin; > > HRESULT hr; > > -- > 2.55.0.543.g5ebe2ebe4ea8 > >
