Re: [DOTNET-ROTOR] gc heap structure for rotor
Correct - the two pointers are just a macro-level check that may produce a false-positive, while IsHeapPointer() produces definitive anwsers. IsObjRefValid() is also a helper function which may return a false-positive. It is only called within _ASSERTE() macros, so it is debug-only code. It is used to catch bad pointers that cannot possibly be pointing into the GC heaps. I believe you could just hard-code g_lowest_address to 0 and g_highest_address to 0x and the SSCLI would continue to function correctly. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Archana Ravindar [mailto:[EMAIL PROTECTED]] Sent: Wednesday, December 18, 2002 10:13 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] gc heap structure for rotor Barry Bond wrote: For example, take a look at GCHeap::IsHeapPointer() in sscli/src/clr/src/vm/gcsmp.cpp. You can see the range-check that the pointer is between g_lowest_address and g_highest_address, and only if it is, IsHeapPointer() calls gcheap::find_segment to determine which (if any) GC heap segment contains the pointer. that means to say, the parameters are for checking at a macro level and IsHeapPointer() is a more detailed check? Is it ok, if an address is validated to be a legal GC heap addr (but since there might be gaps inbetween it is actually does not belong to any of the spaces) this situation might occur since threads.h defines a function IsObjRefValid that doesnt call IsHeapPointer() and uses only the lowest and highest addresses to decide. thank you, archana
Re: [DOTNET-ROTOR] implementation of pinning objects
Pinned objects fall into two categories. First, all arguments passed via P/Invoke (also called NDirect) are implicitly pinned. Second, objects can be explicitly allocated as pinned via the managed System.Runtime.InteropServices.GCHandle.Alloc(Object, GCHandleType) method, which adds entries to the objecthandle table. In both cases, pinning doesn't incur runtime overhead until the GC runs, and the GC isn't involved with pinning until GCHeap::Promote() is called, with GC_CALL_PINNED set in its 'flags' parameter. In the case of P/Invoke, this is the sequence of events as the stack is being crawled during a GC and an NDirectMethodFrame is encountered: gcscan.cpp's GcStackCrawlCallback() calls a pFrame-GcScanRoots. For P/Invoke, pFrame is an NDirectMethodFrame. frames.h's NDirectMethodFrame::GcScanRoots() calls frames.h's FrameMethodFrame::PromoteCallerStackWithPinning() calls frames.cpp's FramedMethodFrame::PromoteCallerStackWorker() calls frames.cpp's FrameMethodFrame::PromoteCallerStackHelper() takes an fPinArgs parameter which is TRUE in this code path. For each object pointer in a jitted method's stack frame, it calls GCHeap::Promote(..., GC_CALL_PINNED) In the case of objecthandle table, the table itself contains a separate list of handles corresponding to pinned objects: the _TableSegmentHeader in handletablepriv.h has an rgTail[] array of pointers to allocated objects, indexed by HNDTYPE_*, so _TableSegmentHeader.rgTail[HNDTYPE_PINNED] is the head of the list of pinned objects. Here is the sequence of events: gcscan.cpp's CNameSpace::GcScanHandles() calls objecthandle.cpp's Ref_TracePinningRoots(). For each handle in each handle table, it calls handletable.cpp's HndScanHandlesForGC(..., HNDTYPE_PINNED, ...). It calls handletablescan.cpp's TableScanHandles(). It calls handletablescan.cpp's SegmentScanByTypeChain(), which scans the segment starting at pSegment-rgTail[HNDTYPE_PINNED], which contains the list of all pinned objects pointed to by the segment. For each of those, it calls objecthandle.cpp's PinObject(), which calls GCHeap::Promote(..., GC_CALL_PINNED) These two call stacks were derived by examining all references to GC_CALL_PINNED in the source tree and working backwards. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Archana [mailto:[EMAIL PROTECTED]] Sent: Monday, January 20, 2003 3:46 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] implementation of pinning objects Hi, How is Pinning implemented in rotor? Does rotor treat the attribute pinned as a separate type? what is the relation between pinned objects and the objecthandle table? would be of immense help if someone could explain these points. thank you, archana
Re: [DOTNET-ROTOR] using the go_through_object macro
The cgcDesc and gcdDescSeries classes are wrappers laid on top of an object's MethodTable to simplify access. The MethodTable is laid out in class.cpp's EEClass::BuildMethodTable(). For most objects, EEClass::PlaceInstanceFields() lays out the object's fields, and is responsible for creating the pointer series stuff. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Friday, June 27, 2003 6:03 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] using the go_through_object macro Hi, this is regarding the scan-part of the gc wherein each object is recursively scanned for either marking or copying. The go_through_object macro seems to give a handle to each child of object say A, that itself is an object i need information about the offset at which this child object is present relative to A. i tried debugging, putting lots of print statements but still i am not able to figure out the organization of cgcDesc class it would be of immense help if someone can explain how we can get this offset and also how the pointer map is stored in the cgcDescSeries class thank you, archana
Re: [DOTNET-ROTOR] Accessing the class in different source folder
The fjit directory builds mscorejt.dll, while clr\src\vm builds cee_wks.lib, which is consumed by clr\src\dlls\mscoree to build sscoree.dll. On Windows, each DLL has its own private namespace for types and functions, with .def files controlling what names are made available to other DLLs. In addition, mscorejt.dll does not link against sscoree.dll: the linkage is one-way, from the EE to the JIT. Sscoree.dll loads mscorejt.dll dynamically (via LoadLibrary), then calls GetProcAddress to look up the getJit() function address and calls it. This is the one place where function pointers and data are exchanged between mscorejt.dll and sscoree.dll, via the ICorJitInfo and ICorJitCompiler interfaces. The following steps are based on the pattern used already between the EE and the JIT - I used ICorDynamicInfo:getHelperFtn as the reference, since it is implemented in the EE and called by the JIT: - add a new ConstructMyType method to the ICorJitInfo class: - in clr\src\inc\corinfo.h, add the following method declaration to class ICorDynamicInfo: virtual Type1* __stdcall ConstructMyType1(void); - in clr\src\vm\jitinterface.h, add the following method to class CEEInfo: virtual Type1* __stdcall ConstructMyType1(void); - in clr\src\vm\jitinterface.cpp, implement CEEInfo::ConstructMyType1: Type1* __stdcall CEEInfo::ConstructMyType1(void) { return new Type1(); } - from within the JIT, call compHnd-ConstructMyType() to create the Type1 instance. If you have declared all methods in Type1 virtual and keep all data private/protected, then everything will work without having to link mscorejt.dll against sscoree.dll. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Chris Sent: Monday, June 30, 2003 9:27 PM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Accessing the class in different source folder 2 related questions on building the rotor with my source files. I added few of my own files to src/fjit folder; they can build and run well if I call into them from the file in fjit folder (I tested it by calling from fjit.cpp). As per my requirements however, files in core folder has to communicate with my code in fjit folder. This is where I am running into linker errors. I have following declarations in jitinterface.JITFunction Type1 t1; Type1 *t2=new Type1( ); Type 1 is defined in file Type1.cpp in fjit folder. 2 Error mesgs that I get are error LNK2019: unresolved external symbol public: virtual __thiscall Type 1::. Are these errors because I have to link Type1.obj with the Core? If so, how can I do it. Either way, please elaborate. My second question is: since all my code is independent of code in fjit folder anyway, what changes (and how) I have to do in make so that I can keep all of my code in a separate folder under src and yet compile and link it with Rotor in the usual way. Thanks in advance for clarifying Cheers Chris
Re: [DOTNET-ROTOR] How redirect LOG macro to Debugger
Take a look at sscli/docs/techinfo/logging.html - if you set COMPLUS_LogToDebugger=1 in your environment, the Execution Engine will route its debug messages to OutputDebugString. The PALs use a different logging mechanism, but the Win32 PAL can also log via OutputDebugString. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Daniel Vasquez Lopez Sent: Tuesday, July 01, 2003 10:24 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] How redirect LOG macro to Debugger Hi, What is the best way to configure rotor in order to call something like ::OutputDebugString in each call to the LOG macro. ...I'd like to see logs in the VS.NET Output Window. thanks. Daniel.
Re: [DOTNET-ROTOR] Build problem (again)
Can you check two things? 1) Check that your new machine has a working Perl installation: the SSCLI build process depends on it. 2) Open c:\users\yuan\proj\rotor\sscli\clr\builddf.log and search for assemblyattributes.cspp. Hopefully, there will be an error message nearby that will help identify what went wrong. Thanks, Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Yuan Yu Sent: Wednesday, August 20, 2003 1:57 PM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Build problem (again) I had no problem compiling sscli until I got my current machine. It is an HP workstation xw8000 running Windows XP. Below is the error message. Any help is greatly appreciated. -Yuan BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\bcl directory Preprocessing - bcl\objdf\rotor_x86\assemblyrefs.cs for rotor_x86 Compiling - bcl\mscorlib.rc for i386 Compiling - bcl\objdf\rotor_x86\appdomainsetup.cs for all platforms bcl\objdf\rotor_x86\objdf\rotor_x86\assemblyattributes.cspp(90,27) : error CS100 9: Unrecognized escape sequence NMAKE : U1077: 'csc' : return code '0x1' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\caspol directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\secdbedit director y NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\storeadm directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\isymmanagedwrapper directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Done 120 files binplaced *** Error while building C:\users\yuan\proj\rotor\sscli\clr\src Open C:\users\yuan\proj\rotor\sscli\clr\src\builddf.err to see the error log . Open C:\users\yuan\proj\rotor\sscli\clr\src\builddf.wrn to see any warnings. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Build problem (again)
I can reproduce the problem myself. The problem will happen if any subdirectory name in the path to the root of the SSCLI tree begins with the letter 'u' - in your case, c:\users\ is the problem. No other letter triggers this. For a quick workaround, try this from a fresh command prompt: subst x: c:\users cd /d x:\yuan\proj\rotor\sscli env.bat buildall -c The underlying problem is that the path to your sscli tree is passed on the C++ compiler's command-line as part of a macro define. -DASSEMBLY_KEY_FILE=C:\\users\\yuan\\proj\\sscli\\clr\\bin\\finalassemb lykey.snk and the compiler is unhappy with the \\u part. Does anyone know why \\u is special in the C++ preprocessor? I tried all 25 other letters and they don't cause the error. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Barry Bond Sent: Wednesday, August 20, 2003 2:19 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] Build problem (again) Can you check two things? 1) Check that your new machine has a working Perl installation: the SSCLI build process depends on it. 2) Open c:\users\yuan\proj\rotor\sscli\clr\builddf.log and search for assemblyattributes.cspp. Hopefully, there will be an error message nearby that will help identify what went wrong. Thanks, Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Yuan Yu Sent: Wednesday, August 20, 2003 1:57 PM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Build problem (again) I had no problem compiling sscli until I got my current machine. It is an HP workstation xw8000 running Windows XP. Below is the error message. Any help is greatly appreciated. -Yuan BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\bcl directory Preprocessing - bcl\objdf\rotor_x86\assemblyrefs.cs for rotor_x86 Compiling - bcl\mscorlib.rc for i386 Compiling - bcl\objdf\rotor_x86\appdomainsetup.cs for all platforms bcl\objdf\rotor_x86\objdf\rotor_x86\assemblyattributes.cspp(90,27) : error CS100 9: Unrecognized escape sequence NMAKE : U1077: 'csc' : return code '0x1' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\caspol directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\secdbedit director y NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\storeadm directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Linking c:\users\yuan\proj\rotor\sscli\clr\src\toolbox\isymmanagedwrapper directory NMAKE : U1073: don't know how to make 'C:\users\yuan\proj\rotor\sscli\clr\bin\r otor_x86\fastchecked\mscorlib.dll' BUILD: NMAKE.EXE failed - rc = 2 BUILD: Done 120 files binplaced *** Error while building C:\users\yuan\proj\rotor\sscli\clr\src Open C:\users\yuan\proj\rotor\sscli\clr\src\builddf.err to see the error log . Open C:\users\yuan\proj\rotor\sscli\clr\src\builddf.wrn to see any warnings. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Another Rotor build problem.
Files under clr\src shouldn't be including the Visual Studio version of stdlib.h: the SSCLI tree provides its own version, in palrt\inc. Can you confirm that E:\taanders\ROTORP\palrt\inc\stdlib.h exists and is 696 bytes long? Also, please check that you don't have an INCLUDE environment variable set - if one is set, it may interfere with the SSCLI build process. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of John Locke Sent: Friday, August 22, 2003 11:00 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Another Rotor build problem. All of a sudden, when I try to compile Rotor, it is unable to precompile common.h. Opening builddf.log you find the below. I think that I've verified that none of the files have changed so I don't know what is going on. Please help! John cl -nologo /Tp ..\common.cpp -Ii386\ -I. -IE:\taanders\ROTORP\clr\src\inc\version -I.. -I..\i386 -Iobjdf\rotor_x86 -I..\..\inc -I..\..\inc\objdf\rotor_x86 -I..\..\classlibnative\inc -I..\..\md\inc -I..\..\xmlparser -I..\..\clijit\orp-include -Ic:\progra~1\micros~1.net\vc7\include -IE:\taanders\ROTORP\clr\public\oak\inc -IE:\taanders\ROTORP\pal -IE:\taanders\ROTORP\palrt\inc -Di386 -D_X86_ -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0400 -DWINVER=0x0400 -D_WIN32_IE=0x0400-DWIN32_LEAN_AND_MEAN=1 -DNTMAKEENV -D_DEBUG -DDEBUGGING_SUPPORTED -DPROFILING_SUPPORTED -DFUSION_SUPPORTED -DPLATFORM_WIN32 -DFEATURE_PAL -DUSE_CDECL_HELPERS -DPAL_PORTABLE_SEH -DDBG=1 -DDEVL=1 -DFPO=0 -D_DEBUG -DNTMAKEENV -D_DEBUG -DDEBUGGING_SUPPORTED -DPROFILING_SUPPORTED -DFUSION_SUPPORTED -DPLATFORM_WIN32 -DFEATURE_PAL -DUSE_CDECL_HELPERS -DPAL_PORTABLE_SEH/c /Zel /Zp8 /Gy -Wp64 /Gz /QIfdiv- /QIf /QI0f /Gi /Gm /GX- /GR- /GF /Zi /O1 /G6 /Oy- /FdE:\taanders\ROTORP\clr\bin\rotor_x86\fastchecked\cee_wks.pdb /FRe:\taanders\rotorp\clr\src\vm\wks\objdf\rotor_x86\ /EHs- /EHa- /EHc- -DUNICODE -D_UNICODE -DCOMPLUS_EE -DENABLE_PERF_COUNTERS -W4 -DNO_CRT /WX /Ylfastchecked\cee_wks /Yccommon.h /Fpobjdf\rotor_x86\common.pch /Foe:\taanders\rotorp\clr\src\vm\wks\objdf\rotor_x86\common.obj common.cpp c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(183) : error C2373: 'PAL_errno' : redefinition; different type modifiers E:\taanders\ROTORP\pal\rotor_pal.h(3409) : see declaration of 'PAL_errno' c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(251) : warning C4273: 'exit' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(260) : warning C4273: 'abs' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(264) : warning C4273: 'atof' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(265) : warning C4273: 'atoi' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(266) : warning C4273: 'atol' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(268) : warning C4273: 'bsearch' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(274) : warning C4273: 'free' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(275) : warning C4273: 'getenv' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(287) : warning C4273: 'labs' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(291) : warning C4273: 'malloc' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(297) : warning C4273: 'qsort' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(298) : warning C4273: 'rand' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(299) : warning C4273: 'realloc' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(305) : warning C4273: 'srand' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(306) : warning C4273: 'strtod' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(308) : warning C4273: 'strtoul' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(319) : warning C4273: '_itow' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(322) : warning C4273: 'wcstod' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(323) : warning C4273: 'wcstol' : inconsistent dll linkage c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\stdlib.h(324) : warning C4273:
Re: [DOTNET-ROTOR] Sockets within Execution Engine
Have you confirmed that the server_addr you created looks correct under the debugger? The typecast *(struct in_addr*)hp-h_addr looks suspicous to me. If you look at other callers of connect() in the SSCLI, you'll see code like this: /* prepare the sockaddr_in structure */ mySockaddr.sin_family = AF_INET; mySockaddr.sin_port = getRotorTestPort(); mySockaddr.sin_addr.S_un.S_addr = inet_addr(127.0.0.1); memset( (mySockaddr.sin_zero), 0, 8); (this came from sscli\tests\palsuite\networking\wsasend_wsarecv\wsarecv7\wsarecv7_client .c) Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Albert Miranda Sent: Tuesday, October 14, 2003 2:40 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Sockets within Execution Engine We are a team working on a remote module for Rotor. As such we need to establish a connection with a remote server (although this server is hosted at localhost at the moment). We decided to use the sockets library, as it comes in the PAL specification. But no matter how we try, we get a connection refused error. We are using a server implemented in C#, using System.Net.Sockets and we can get a connection if we try it on a standalone client (also in C#). This connection is established in a thread we created to manage connections and replies assynchronously. We've tried almost everything we came up to, but we get no results, and of course as the project consists in a remote module, without a connection we have no project. We're posting the code we are using to establish the connection so far, if anyone notices an error or knows something about this problem please let us know. This is the code (preliminary version of the helper function for the thread start): ULONG __stdcall GCHeap::RemoteSenderThreadStart(void *args) { WORD VersionRequested = MAKEWORD(2, 2); WSADATA WsaData; int SocketID, error; struct sockaddr_in server_addr; BOOLok = RemoteSenderThread-HasStarted(); _ASSERTE(ok); _ASSERTE(GetThread() == RemoteSenderThread); /* initialize to use winsock2.dll */ error = WSAStartup(VersionRequested, WsaData); if(error != 0){ ok = FALSE; _ASSERTE(!Failed to find a usable WinSock DLL!); } /* Confirm that the WinSock DLL supports 2.2. */ if(LOBYTE( WsaData.wVersion ) != 2 || HIBYTE( WsaData.wVersion ) ! = 2 ){ ok = FALSE; error = WSACleanup(); if(SOCKET_ERROR == error){ ok = FALSE; _ASSERTE(!Failed to call WSACleanup API!); } } SocketID = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(SocketID == INVALID_SOCKET){ ok = FALSE; error = WSACleanup(); if(error == SOCKET_ERROR){ ok = FALSE; _ASSERTE(!Failed to call WSACleanup API!); } } struct hostent *hp; hp = gethostbyname(127.0.0.1); server_addr.sin_family = AF_INET; server_addr.sin_port = 8000; server_addr.sin_addr = *(struct in_addr*)hp-h_addr; memset( (server_addr.sin_zero), 0, 8); error = connect(SocketID, (struct sockaddr *)server_addr, sizeof (server_addr)); if(error == SOCKET_ERROR){ ok = FALSE; fprintf(stdout, Error Code: %d\n, GetLastError()); error = closesocket(SocketID); if(error == SOCKET_ERROR){ ok = FALSE; } error = WSACleanup(); if(error == SOCKET_ERROR){ ok = FALSE; } } if (ok){ EE_TRY_FOR_FINALLY{ RemoteSenderThread-SetBackground(TRUE); while (!fQuitSender){ // Wait for work to do... _ASSERTE(RemoteSenderThread-PreemptiveGCDisabled()); RemoteSenderThread-EnablePreemptiveGC(); WaitForRemoteEvent (GCHeap::hEventToSender); RemoteSenderThread-DisablePreemptiveGC(); } } EE_FINALLY{ if (GOT_EXCEPTION()) _ASSERTE(!Exception in the RemoteSender thread!); } EE_END_FINALLY; } WSACleanup(); RemoteSenderThread-EnablePreemptiveGC(); return 0; } Thank you for your help. If anyone could come up with the problem, or even give us an alternative to sockets to establish the connection, it'd be very welcome. R.S.V.P. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Method Entry/Return
Take a look at the profiler, in sscli\samples\utilities\dnproprofiler. There is a dnprofiler.html that describes a bit about the profiler interface. You should be able to use the JITCOmpilationStarted() callback to instrument each method's IL as it is jitted. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of SUBSCRIBE DOTNET-ROTOR Memomana Sent: Wednesday, November 26, 2003 8:30 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Method Entry/Return How do we capture each method invocation and return? Is it possible to capture its information as well? Thank you very much. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Embedding rotor w/ Platform COM?
You could host Rotor in-process inside a native app using the same mechanism that clix.exe uses: call Win32 LoadLibrary() on mscoree.dll, then GetProcAddress for _CorExeMain2 and call it. You *might* need to first call LoadLibrary() on rotor_pal.dll and call its PAL_Initialize() before loading mscoree.dll, just to be sure that the PAL is ready to go. sscli\docs\techinfo\native_managed_interop.html describes Rotor's Foreign Function Interface (FFI) which can be used to make calls from native C/C++ code into managed code. It would be a logical starting place to build an interop layer that wraps a managed object with a COM object. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Nathan Herring Sent: Wednesday, November 26, 2003 3:38 PM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Embedding rotor w/ Platform COM? [Try 3: After removing the digital signature, and after having it being tossed as spam.] After peering at rotor for a while, it seems that if COM exists on the platform, you could write an alternate PAL that took advantage of the native COM. It seems that you could get interop out of rotor into COM objects that way. However, I'm also interested in hosting the rotor runtime by a native COM client. I didn't see a way to do this offhand. Is this feasible? Is the code in rotor somewhere, or would I have to write my own COM wrapper? Thanks, nh === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] [Dotnet-sscli] Stackwalk from C#
Have you looked at System.Diagnostics.StackFrame? Sources are in clr\src\bcl\system\diagnostics\stacktrace.cs. This code uses an ECALL in stackframe.cs to call native DebugStackTrace::GetStackFramesInternal(), implemented in clr\src\vm\debugdebugger.cpp. It in turn calls StackWalkFrames(). Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Johnston Stewart Sent: Friday, November 28, 2003 7:40 AM To: [EMAIL PROTECTED]; dotnet-sscli Subject: [Dotnet-sscli] Stackwalk from C# I am trying to call the StackWalkFramesEx function from c# code, in order to perform a stackwalk on a managed thread. I would be very grateful for pointers as to how to achieve this, as I am having trouble working out exactly how this should be done... Thanks, Johnny. ___ Dotnet-sscli mailing list [EMAIL PROTECTED] http://mailserver.di.unipi.it/mailman/listinfo/dotnet-sscli === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Finding MethodTables
The current garbage collector frequently accesses the MethodTables of all object in the heap. Can you re-use some of that code? ie. clr/src/vm/gcsmp.cpp's Object::GetMethodTable() returns a MethodTable* from an object. Alternatively, you could store newly-allocated MethodTable objects in a list and traverse that list, though you'd need to be careful about multithreading and removing them from the list at the appropriate time. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Jorge Sanchez Sent: Thursday, December 11, 2003 7:27 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Finding MethodTables I'm developing a project working with the current implementation of Rotor GC. I need to know how to access all MethodTable structures. Is there a structure (array or list-like) that I can use, or are all the MethodTables unrelated to each other? Thanks for helping. Answer please. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] About GcScanRoots
GcScanRoots and GcScanHandles don't push object pointers onto the mark stack: they directly mark the objects as live, and for each live object, push pointers to objects referenced from that first level onto the mark stack. See GCHeap::Promote() for details: it is called from GcScanRoots/GcScanHandles for each object enumerated. Objects are pushed on the mark stack in gc_heap::mark_object_internal(), with this line: *(mark_stack_tos++) = o;, and popped within the same function, by oo = *(--mark_stack_tos). Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Albert Miranda Sent: Friday, December 12, 2003 1:17 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] About GcScanRoots Hello, I think the GC thread uses CNameSpace::/CFinalize::GcScanRoots GcScanHandles to find all the references in the stacks, handles and finalize queue that 'point' to objects in the GCHeap. Thus it is able to find which objects are alive in the GCHeap. If one of such objects contains pointers to other objects, these ones will be marked alive as well, won't they? I believe that ONLY the roots are located with these functions, and they're stored in a mark stack. Later this stack is traversed, and if an object pointed to by one of these roots contains more pointers to objects, these pointers are added to this stack. This way, eventually the stack will contain all the possible references that make objects in the heap alive, and then it'll be just a matter of following these references and marking them. My question is, am I right? And if so, where in the code is this mark stack populated. (I suppose that GcScanRoots and the like only traverse the stack (or other structures associated to them) but they don't locate the objects pointed to by objects referenced from the stack, but only the roots) Thank you very much for your patience, and thank you in advance. Answer please, because this is an important matter for my project. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Rotor root set enumeration question.
clr/src/vm/appdomain.cpp pre-allocates some exceptions in SystemDomain::CreatePreallocatedExceptions() by calling CreateHandle() then StoreObjectInHandle(). They boil down into calls to clr/src/vm/objecthandle.cpp. The GC calls objecthandle.cpp's Ref_TraceNormalRoots() from within CNameSpace::GcScanHandles() in gcscan.cpp, to enumerate these objects. For strings, clr/src/vm/appdomain.cpp's SystemDomain::Init() constructs a thing called the GlobalStringLiteralMap. See clr/src/vm/stringliteralmap.cpp for its implementation details. It looks like the m_LargeHeapHandleTable is implemented in appdomain.cpp. This posting is provided AS IS with no warranties, and confers no rights. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Anderson, Todd A Sent: Tuesday, December 30, 2003 10:48 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Rotor root set enumeration question. Does anybody know how Rotor enumerates the roots for things like preallocated exceptions and especially for string literals? String literals seem to be allocated through the GC memory allocation routines but I don't see where/how those roots are enumerated at collection time. thanks, Todd === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] build error after making changes
'2' is File not found error. Try this: cd sscli/clr/src/ilasm build This should print a useful error message. If it doesn't, open builddf.log in the current directory: it contains the output from all of the tools used during the build. From the list of things that failed, my guess is that something failed to build in clr\src\vm and it caused a cascade of failures from all things that depend on it. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Friday, January 09, 2004 9:08 PM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] build error after making changes Hi, After making modifications to code when i gave a fresh fastchecked build (using ./buildall) i am getting the following errors. Is there anyway to trace to the source of the error. Please help. Thanks Regards archana BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/ilasm, /home/archana/fastgc/sscli/build/v1.x86fstchk.rotor\sdk\bin\ilasm) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/ilasm - exiting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/ildasm ,/home/archana/fastgc/sscli/build/v1.x86fstchk.rotor\sdk\bin\ildasm) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/ildasm - exiting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/metain fo,/home/archana/fastgc/sscli/build/v1.x86fstchk.rotor\sdk\bin\metainfo) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/metainfo - exiting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/peveri fy,/home/archana/fastgc/sscli/build/v1.x86fstchk.rotor\sdk\bin\peverify) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/peverify - exiting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/sn,/ho me/archana/fastgc/sscli/ build/v1.x86fstchk.rotor\sdk\bin\sn) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/sn - exiting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/permvi ew,/home/archana/fastgc/ sscli/build/v1.x86fstchk.rotor\sdk\bin\permview) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/permview - exi ting. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/gacuti l,/home/archana/fastgc/s scli/build/v1.x86fstchk.rotor\.\gacutil) failed 2 BINPLACE : fatal error BNP: Unable to place file /home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/gacutil - exit ing. BINPLACE : warning BNP: CopyFile(/home/archana/fastgc/sscli/clr/bin/rotor_x86/fastchecked/al,/ho me/archana/fastgc/sscli/ build/v1.x86fstchk.rotor\.\al) failed 2 === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] build error after making changes
OK, so something failed whle compiling the BCL (mscorlib.dll). 'build' just prints summary information to the screen - it also produces two log files: builddf.err and builddf.log. Builddf.log captures all output from all tools launched by build, and builddf.err is a filtered version that tries to report just tools that failed. Try searching builddf.log for the NMAKE : fatal error U1077: 'if' : return code '0x1' string and see what happened just before that line. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Sunday, January 11, 2004 9:38 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] build error after making changes Hi, I tried doing what you said and got to know also, what the error was in the /vm directory. now when i continue to build i am getting the following error BUILD: Linking /usr/home/archana/fastgc/sscli/clr/src/bcl directory Compiling - bcl/mscorlib.rc for i386 Compiling - bcl/objdf/rotor_x86/AppDomainSetup.cs for all platforms NMAKE : fatal error U1077: 'if' : return code '0x1' BUILD: nmake failed - rc = 2 what might have gone wrong? On Sun, 11 Jan 2004, Barry Bond wrote: '2' is File not found error. Try this: cd sscli/clr/src/ilasm build This should print a useful error message. If it doesn't, open builddf.log in the current directory: it contains the output from all of the tools used during the build. From the list of things that failed, my guess is that something failed to build in clr\src\vm and it caused a cascade of failures from all things that depend on it. Barry -- Regards, Archana === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] C# compiler debugging
It's just a native-code app, so it can be debugged with Visual Studio without needing to do any work ahead of time. From inside your Rotor build window, run devenv.exe /debugexe %TARGETCOMPLUS%\csc.exe foo.cs . That will launch Visual Studio and tell it to debug the C# compiler as it compiles foo.cs. From there, file/open your sscli\clr\src\csharp\csharp\sccomp\compiler.cpp and set breakpoints in it. Barry This posting is provided AS IS with no warranties, and confers no rights. -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of SUBSCRIBE DOTNET-ROTOR rb 531 Sent: Thursday, February 12, 2004 8:49 AM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] C# compiler debugging hi, I guess, I asked a meaningless question. Is there a way to debug the compiler.cpp file? I need help ASAP. Is there any documentation somewhere? Thanks. === This list is hosted by DevelopMentor(r) http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] FW: Using Visusal Studio to build Rotor
You can use VS.NET's IDE to debug the native code parts of the SSCLI. The document file://c:/sscli/docs/debugging/debugging_overview.html#DebuggingUnmanage dSSCLICodeonWindows explains how to do it. It isn't practical to build the SSCLI from within VS.NET: the SSCLI build process is very complex and it will be difficult to replicate all of the special tools, command-line arguments, and dependency information. Here is a hint if you are only making changes in clr\src\vm and want to rebuild more quickly than waiting for buildall... cd /d %CORBASE%\src\vm build - this builds %CORBASE%\bin\rotor_x86\...\cee_wks.lib cd /d %CORBASE%\src\dlls\mscoree build -z - this links cee_wks.lib and other libs to build sscoree.dll Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Robert Hurlbut Sent: Friday, May 28, 2004 6:09 AM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] FW: Using Visusal Studio to build Rotor Sajay, If you can get it to work, that would be great info to mention. I am used to the command line, mainly because I work with Rotor in FreeBSD where there is no VS.NET ide -). Let us know your results if you try it. Thanks, Robert Hurlbut http://weblogs.asp.net/rhurlbut On Fri, 28 May 2004 16:52:11 +0400, Sajay Antony [EMAIL PROTECTED] wrote: Thank you for the response. The thing I noted was that rotor builds with vs environment setup. With reference to the VM part.So I believe the c++ compiler is used I would like to know why is the vs.net environment setup necessary if otherwise. This is my understanding do correct me if im wrong. Also debuggin can be started with devenv again with the IDE and the code breaks and then we can debug with the IDE. So out of all this dependency with visual studio I believe we should be able to atleast build the vm part of rotor done in c++ using the IDE . I do not know if I have misunderstood anything. I agree building the C# bcls would be a difference story but the CLR part should build as its in C++ and asm. Am I wrong in thinking so. Thank you for you time. Regards Sajay === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Accessing the class in different source folder
A good example to follow is ildbsymbols.dll, in clr\src\tools\ildbsymbols. 1. ildbsymbols has an ildbsymbols.def file that was manually authored and is included in the tarball. The sources file in clr\src\tools\ildbsymbols references it via DLLDEF=ildbsymbols.def. 2. The purpose of coffbase.txt is to specify the preferred load address of each DLL built, to ensure that no two DLLs overlap in memory and force a relocation. This is a load-time performance optimization, so the consequences of getting it wrong are close to zero. For your DLL, you could place your DLL immediately after SOS by choosing a base of 0x602B (SOS's base is 0x6026 and its length is 0x0004B000... 0x6026+0x0004B000=0x602AB000, rounded up to the next highest 64k). If the value is too small, you'll get a linker warning and should adjust your DLLs size in coffbase.txt. If the value is too large, you just fragment the address space of the process a little bit. To start with, pick a length of 0x0001. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Sunday, June 20, 2004 9:20 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] Accessing the class in different source folder Hi, this is wrt a previous posting in this group which says how to limit code into a separate folder and expose it as a dll. i have been trying to do the same for the GC module. could you please explain the following wrt the steps outlined below? 1. how is the DLLDEF file created? 2. the coffbase.txt already has entries regarding base address,length etc.. for each DLL. in what way should a new entry be made? Thanks Regards archana Original Message Subject:Re: [DOTNET-ROTOR] Accessing the class in different source folder Date: Sun, 6 Jul 2003 09:50:55 -0700 From: Barry Bond [EMAIL PROTECTED] Reply-To: Discussion of the Rotor Shared Source CLI implementation === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Accessing the class in different source folder
Yes, you must create a def file for every DLL in Windows. I recommend that you copy the ildbsymbols.def file and customize it for your GC module. Full documentation for DEF files is available at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/ html/_core_module.2d.definition_files.asp. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Monday, June 21, 2004 8:37 AM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] Accessing the class in different source folder Hi, On Mon, 21 Jun 2004, Barry Bond wrote: A good example to follow is ildbsymbols.dll, in clr\src\tools\ildbsymbols. 1. ildbsymbols has an ildbsymbols.def file that was manually authored and is included in the tarball. The sources file in clr\src\tools\ildbsymbols references it via DLLDEF=ildbsymbols.def. so a .def has to be manually created for the gc module too? if so how should one go about it? Thanks archana === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] GetThread() function
What platform are you running on? FreeBSD? Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Tuesday, June 22, 2004 7:58 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] GetThread() function Hi, some of my modifications (i dont know which) is making GetThread() return NULL. where is this function defined? if possible could you give some hints as to what could possibly be the problem thanks archana === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Debugging (SOS)
Things are working fine for you... the messages from the debugger just aren't clear. ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll tells you that the debugger cannot find symbols for ntdll.dll. That's OK... they're not needed to debug Rotor. *** WARNING: Unable to verify checksum for D:\NET\SSCLI\build\v1.x86chk.rotor\rotor_pal.dll is benign - just ignore it. Bp expression 'sscoree!RunMain' could not be resolved, adding deferred bp is telling you that the debugger couldn't resolve the symbol name sscoree!RunMain but that it will try again whenever a new DLL loads. This message is also OK: at the time you are setting the breakpoint, sscoree.dll isn't loaded. As soon as sscoree.dll loads, NTSD will set the breakpoint. So if you hit 'g' to go, you'll see sscoree.dll load then the debugger will break at RunMain and SOS will work fine. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of SUBSCRIBE DOTNET-ROTOR Memomana Sent: Friday, June 25, 2004 6:59 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Debugging (SOS) Hi, I could not successfully follow the steps to use the SOS extension as in documented in sscli\docs\debugging\sos.html. Everytime I try to set a breakpoint (after loading the SOS), it fails. For example: 0:000 bp rotor_pal!pal_writefile *** WARNING: Unable to verify checksum for D:\NET\SSCLI\build\v1.x86chk.rotor\ro tor_pal.dll 0:000 bp sscoree!RunMain Bp expression 'sscoree!RunMain' could not be resolved, adding deferred bp 0:000 Moreover, why do I always get ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll when I start the NTSD debugger? Can anybody help? Thank you. PS: I tried to use the latest version of the Debugging Tools for Windows. Memomana === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] buildall.cmd fails on PAL
The PAL builds with /W3 /WX but you're seeing a level 4 warning, which is interesting. From your Rotor build window, can you run cl with no arguments and send back the version number from its banner? Mine reports 13.10.3077. Could you also send along sscli\pal\win32\build*.log? There might be a hint in there about what is different on your new machine. Thanks, Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Christer Ljung Sent: Wednesday, June 30, 2004 8:33 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] buildall.cmd fails on PAL I've successfully built Rotor a couple of times, but now I've moved Rotor to a brand new laptop and - bang - run into trouble at the very beginning. When running buildall.cmd (on Windows) it stops directly when building PAL since the WX switch treats warnings as errors. --- Builing PAL --- C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinNT.h(2081) : error C2220: warning treated as error - no object file generated C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinNT.h(2081) : warning C4391: 'DWORD __readfsdword(DWORD)' : incorrect return type for intrinsic function, expected 'unsigned long' exceptions.c is the first file to be compiled in PAL. It includes win32pal.h as the first thing, which eventually includes windows.h, which in turn includes winnt.h, and then the compiler throws this error. I've been looking into this now for an hour. Does anyone know what this is and what's wrong? Grateful for help! /Christer === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] tracking the source of an alloc
SOS does work on FreeBSD - you invoke it differently than you do on Windows though. From the GDB prompt, switch to thread #5 and type: call SOS(DumpStack) that is equivalent to doing this in NTSD: !sos.DumpStack To find the start of the jitted function, disassemble backwards until you find a push %ebp opcode followed by mov %esp, %ebp. Subtract 4 from the address of the push %ebp opcode and you'll find a 4-byte pointer stored there, which points to a pair of pointers to strings. I don't have a FreeBSD box handy, but I think disas 0x290be09d-0x40 0x290be09d will disassemble 0x40 bytes worth of code just before the machine code in #5. If you don't see the push %ebp / mov %esp, %ebp there, then keep going backwards until you do find it. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Wednesday, July 07, 2004 9:03 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] tracking the source of an alloc Hi, How can one find out where the call to GcHEap::Alloc is originating from? i had sent a similar mail regarding how to debug in such cases long time back (ref:help needed wrt debugging, Jul24,2003, that Barry Bond helped me with). i tried the method that was suggested. but i am not able to locate the prolog here. and i dont know if i can use SOS in the Free BSD platform? i am running the application through gdb (Free BSD) and doing a backtrace, this is what i get... Looking at the machine code at #5 in the following output [ #5 0x290be09d in ?? ()], which is Dump of assembler code from 0x290be09d to 0x290be19d: 0x290be09d: add$0x8,%esp 0x290be0a0: add$0x4,%esp 0x290be0a3: push %eax 0x290be0a4: mov$0x290b5bc4,%eax 0x290be0a9: push %eax 0x290be0aa: mov$0x28541678,%eax 0x290be0af: call *%eax 0x290be0b1: add$0x4,%esp 0x290be0b4: mov$0x290b564c,%eax 0x290be0b9: push %eax 0x290be0ba: mov$0x28539b50,%eax 0x290be0bf: call *%eax 0x290be0c1: add$0x4,%esp 0x290be0c4: push %eax 0x290be0c5: mov$0x2d0d0568,%eax 0x290be0ca: call *%eax 0x290be0cc: add$0x8,%esp 0x290be0cf: push %esp 0x290be0d0: push %ebp 0x290be0d1: mov$0xc,%eax 0x290be0d6: push %eax 0x290be0d7: mov$0x2d0d02b4,%eax 0x290be0dc: call *%eax 0x290be0de: add$0xc,%esp 0x290be0e1: mov0xfffc(%ebp),%esi 0x290be0e4: mov%ebp,%esp 0x290be0e6: pop%ebp 0x290be0e7: ret 0x290be0e8: add%al,(%eax) 0x290be0ea: add%al,(%eax) 0x290be0ec: add%al,(%eax) ... Program received signal SIGTRAP, Trace/breakpoint trap. 0x280cff40 in DBG_DebugBreak () at ../context.c:390 (gdb) bt #0 0x280cff40 in DBG_DebugBreak () at ../context.c:390 #1 0x28081cb2 in DebugBreak () at ../debug.c:220 #2 0x28737a66 in Alloc (size=16, bFinalize=0, bContainsPointers=0) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../gcscan.cpp:82 #3 0x28513e63 in FastAllocateObject (pMT=0x2909fb94) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../gcscan.cpp:975 #4 0x2853fd70 in JIT_Box (type=0x2909fb94, unboxedData=0xbfbfb254) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../jitinterface.cpp:6737 #5 0x290be09d in ?? () #6 0x2834bc05 in donestack () from /usr/home/archana/fastgc/sscli/build/v1.x86fstchk.rotor/libsscoree.so #7 0x283e18eb in CallDescrWorker (pSrcEnd=0xbfbfb844, numStackSlots=0, pArgumentRegisters=0xbfbfb814, pTarget=0x290b5a93) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../class.cpp:9769 #8 0x2854ea3e in MethodDesc::CallDescr (this=0x290b5a98, pTarget=0x290b5a93 él\205, pModule=0x81b2c00, pMetaSigOrig=0x290b6b44, fIsStatic=1, pArguments=0x0) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../method.cpp:740 #9 0x2854e274 in MethodDesc::Call (this=0x290b5a98, pArguments=0x0, sig=0x290b6b44) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../method.cpp:567 #10 0x283e2a96 in EEClass::RunClassInit (this=0x29047d6c, pEntry=0x81f9200, pThrowable=0xbfbfc784) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../class.cpp:10010 #11 0x283e322a in EEClass::DoRunClassInitHelper (this=0x29047d6c, pThrowable=0xbfbfc784, pLocalBlock=0x806cc3c, pEntry=0x81f9200, fRunClassInit=1) at /usr/home/archana/fastgc/sscli/clr/src/vm/wks/../class.cpp:10064 ... thanks Regards archana === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004
Re: [DOTNET-ROTOR] purpose of MAXALLOC?
MAXALLOC is defined only in debug builds (checked and fastchecked), not in retail (free). The comment in utilcode.h is relevant: 00222 #ifdef MAXALLOC 00223 // these defs allow testers to specify max number of requests for an allocation before 00224 // returning outofmemory 00225 void * AllocMaxNew( size_t n, void **ppvCallstack); 00226 class AllocRequestManager { 00227 public: 00228 UINT m_newRequestCount; 00229 UINT m_maxRequestCount; 00230 AllocRequestManager(LPCTSTR key); 00231 BOOL CheckRequest(size_t n); 00232 void UndoRequest(); 00233 }; 00234 #endif It is testing tool that forces the garbage collector to return out-of-memory artificially. If you set m_MaxRequestCount to 25, then the first 24 allocations will succeed, and the 25th and all subsequent allocations will fail. So no, there is no need to include this in an alternate heap manager. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Archana Sent: Monday, July 12, 2004 4:34 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] purpose of MAXALLOC? hi, what is the purpose of MAXALLOC, AllocRequestManager? do we have to include them if we plug ina different heap manager? Thanks archana === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] DomainLocalBlock?
A DomainLocalBlock is a collection of per-appdomain data - Assembly::Init() in clr\src\vm\assembly.cpp refers to it as DLS - Domain Local Storage. Kind of like Windows Thread Local Storage (TLS), but per-appdomain. All of its methods deal with module names and indices into a per-appdomain list of modules. So an AppDomain contains a DomainLocalBlock, listing the modules loaded by the appdomain. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Allan Fisherman Sent: Monday, July 12, 2004 3:12 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] DomainLocalBlock? I am trying to understand the correlation between the AppDomain stuff and the execution engine. I saw that the AppDomains were using some DomainLocalBlock and DomainLocalClass classes internally. What exactly are these classes supposed to do? What's the relationship between a DomainLocalClass and an EEClass? Also, I saw some DLSRecord things in the AppDomain impl. what do they mean as well? I have spent several hours on these stuff but had little luck. Any insights will be greatly appreciated. Thanks, Allan - Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla ASP.NET 15 March 2004, in Boston, MA 17 May 2004 in Torrance, CA 7 June 2004, London, UK http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Method Entry/Exit Hooks
Does your logging code also hook tailcalls? Search clr\src\fjit\fjit.cpp for CORINFO_HELP_PROF_FCN_TAILCALL I'm not sure if there are any tailcalls in a simple helloworld. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Gajah Mada Sent: Thursday, September 16, 2004 6:35 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] Method Entry/Exit Hooks One more thing, I did not do any fancy things. Just a simply HelloWorld program. Gajah Mada === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla.NET Sept 27-Oct 1, in Torrance http://www.develop.com/courses/gdotnetls Essential.NET Sept 20-24, in San Francisco Essential.NET Oct. 4-8, in London http://www.develop.com/courses/edotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla.NET Sept 27-Oct 1, in Torrance http://www.develop.com/courses/gdotnetls Essential.NET Sept 20-24, in San Francisco Essential.NET Oct. 4-8, in London http://www.develop.com/courses/edotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Newbie question on compiling the CLR
1. Here are steps for rebuilding after making a change to clr\src\vm... cd \sscli\clr\src\vm build -z- rebuilds the VM directory without computing dependency information cd ..\dlls\mscoree build -z- rebuilds sscoree.dll without computing dependency information 2. devenv /debugexe clix is the best way to debug natively 3. I'm not sure why fprintf() isn't working for you. clix.exe uses fwprintf(stderr,...) to print its error messages, and they work fine. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Sriram Krishnan Sent: Saturday, October 02, 2004 11:20 AM To: [EMAIL PROTECTED] Subject: [DOTNET-ROTOR] Newbie question on compiling the CLR I've just started to play around with Rotor and have a couple of newbie questions 1. How do I quickly compile the code in the clr/src/vm folder quickly after making a small change. Let's say I change one or two lines in Assembly.cpp. Right now, what I do is to go to the clr/src folder and run 'build' at the command prompt. However, this takes ages to complete. There has to be an easier way but I can't figure out what that is after looking through the command line options for build 2.I'm doing a devenv /debugexe clix for getting Rotor debugging inside VS.NET. Is there an easier way to do this? I would love to have stuff like Go to definition/reference work inside the IDE. 3. And the ..err..most embarassing question of all. Why don't normal printfs or fwprintfs work inside the vm.For e.g, I put a fwprintf inside Assembly::ExecuteMainMethod but though I stepped inside PAL returning it stdout, I never saw the output. I have logging enabled in rotor.ini and am seeing other messages. I know that I can use the LOG macros..but I want to know why normal printfs don't work Thanks in advance, Sriram --- I blog at http://www.dotnetjunkies.com/weblog/sriram === This list is hosted by DevelopMentor(r) http://www.develop.com ASP.NET courses you may be interested in: Guerrilla.NET Sept 27-Oct 1, in Torrance http://www.develop.com/courses/gdotnetls Essential.NET Sept 20-24, in San Francisco Essential.NET Oct. 4-8, in London http://www.develop.com/courses/edotnet View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com ASP.NET courses you may be interested in: Guerrilla.NET Sept 27-Oct 1, in Torrance http://www.develop.com/courses/gdotnetls Essential.NET Sept 20-24, in San Francisco Essential.NET Oct. 4-8, in London http://www.develop.com/courses/edotnet View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] Remoting Message - Help
The code that displays the text is in fx\src\net\system\net\_connection.cs - search for Dump(). It looks like it might be called as part the GlobalLog.DebugAddRequest call in _connection.cs's SubmitRequest method. All of the code is tagged with [System.Diagnostics.Conditional(DEBUG)], so it is debug-only code and not necessarily related to error reporting. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Gajah Mada Sent: Monday, January 10, 2005 12:24 PM To: DOTNET-ROTOR@DISCUSS.DEVELOP.COM Subject: [DOTNET-ROTOR] Remoting Message - Help Hi, SSCLI often produces below message when hosting a remoting server. Specifically, the message is generated when there are many (maybe, too many) clients connected to it. The strange thing is that there is no exception thrown at the client side. Can anybody help? Thank you. Gajah Mada -start- Cnt#128 Found-WaitList m_CanPipeline:True m_Pipelining:False m_KeepAlive:True m_Error:Success m_ReadBuffer:System.Byte[] m_BytesRead:25 m_HeadersBytesUnparsed:25 m_BytesScanned:25 m_ResponseData:System.Net.CoreResponseData m_ReadState:StatusLine m_CurrentRequestIndex:25 m_StatusLineInts:System.Int32[] m_StatusDescription: m_StatusState:0 m_ConnectionGroup:System.Net.ConnectionGroup m_WeakReference:System.WeakReference m_Idle:False m_Server:System.Net.ServicePoint m_Version:1.1 Transport:System.Net.Sockets.NetworkStream m_Handle:448 m_WasConnected: True m_WasDisconnected: False m_ReadCallbackEvent:System.Threading.ManualResetEvent m_StartConnectionDelegate:System.Threading.WaitOrTimerCallback m_Abort:False m_AbortSocket: m_AbortDelegate:System.Net.HttpAbortDelegate m_ReadDone:False m_WriteDone:True m_Free:False -end- === This list is hosted by DevelopMentor(r) http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
Re: [DOTNET-ROTOR] _DEBUG
Just launch env.bat with no arguments, and it will create a checked build window, which defines _DEBUG and several other macros. env.bat free creates a build window with debugging macros off. Barry -Original Message- From: Discussion of the Rotor Shared Source CLI implementation [mailto:[EMAIL PROTECTED] On Behalf Of Gajah Mada Sent: Sunday, January 16, 2005 2:31 PM To: DOTNET-ROTOR@DISCUSS.DEVELOP.COM Subject: [DOTNET-ROTOR] _DEBUG Hi, Are there any environment variables to turn on (i.e. define) the 'ifdef _DEBUG' part in SSCLI code? For example, in gcee.cpp: #ifdef _DEBUG ... #endif Thank you. Gajah Mada === This list is hosted by DevelopMentor(r) http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com === This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com