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
> 

Reply via email to