It's a bug that CDebugControl::GetSystemVersion() returns VER_PLATFORM_WIN32_WINDOWS, though a minor one. SOS works correctly on FreeBSD - the return value from this method is used only in FileExist() in SOS, which works correctly no matter what GetSystemVersion() returns, since the PAL supports both FindFirstFileA() and FindFirstFileW().
SOS won't work in the cygwin version of gdb without some changes. On Win32, SOS runs in-process inside the NTSD and WinDBG debuggers and calls a "debugger engine" interface that is implemented by the debugger. Gdb doesn't support loading shared libraries into its address space and doesn't have a programmatic interface. Instead, on FreeBSD, SOS is loaded into the debuggee process from a helper routine in clr/src/vm/ceemain.cpp, and gdbwrap.cpp implements the "debugger engine" interface. On Win32, if you switch in the SOS() function in ceemain.cpp and most of the PLATFORM_UNIX defines in SOS, it ought to work from cygwin gdb. Barry This posting is provided "AS IS" with no warranties, and confers no rights. > -----Original Message----- > From: Evgeny Vigdorchik [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, July 03, 2002 2:10 AM > To: [EMAIL PROTECTED] > Subject: [DOTNET-ROTOR] Bug? > > > Hello list, > Is it a bug or a specific feature in SOS that > CDebugControl::GetSystemVersion in gdbwrap.cpp returns > VER_PLATFORM_WIN32_WINDOWS while the whole file is guarded by > PLATFORM_UNIX? > > Another question: is SOS supported for cygwin version of gdb? > > Evgeny Vigdorchik > Institute of Information Systems, > St.Petersburg State University >
