Re: [DOTNET-ROTOR] gc heap structure for rotor

2002-12-19 Thread Barry Bond
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

2003-01-22 Thread Barry Bond
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

2003-06-27 Thread Barry Bond
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

2003-07-01 Thread Barry Bond
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

2003-07-01 Thread Barry Bond
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)

2003-08-20 Thread Barry Bond
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)

2003-08-21 Thread Barry Bond
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.

2003-08-22 Thread Barry Bond
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

2003-10-14 Thread Barry Bond
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

2003-11-26 Thread Barry Bond
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?

2003-11-26 Thread Barry Bond
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#

2003-11-29 Thread Barry Bond
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

2003-12-11 Thread Barry Bond
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

2003-12-14 Thread Barry Bond
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.

2003-12-30 Thread Barry Bond
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

2004-01-11 Thread Barry Bond
'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

2004-01-12 Thread Barry Bond
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

2004-02-12 Thread Barry Bond
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

2004-05-28 Thread Barry Bond
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

2004-06-21 Thread Barry Bond
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

2004-06-21 Thread Barry Bond
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

2004-06-22 Thread Barry Bond
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)

2004-06-25 Thread Barry Bond
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

2004-06-30 Thread Barry Bond
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

2004-07-07 Thread Barry Bond
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?

2004-07-12 Thread Barry Bond
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?

2004-07-12 Thread Barry Bond
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

2004-09-17 Thread Barry Bond
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

2004-10-04 Thread Barry Bond
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

2005-01-10 Thread Barry Bond
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

2005-01-16 Thread Barry Bond
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