cygwin1.dll startup and GDB

DJ Delorie dj@delorie.com
Tue Apr 27 19:06:00 GMT 1999


> 	Either way, mapname will be NULL since NULL is being passed as the
> first parameter to open_shared.

Not always.  When NULL is passed, we musn't call OpenFileMapping(),
because it doesn't fail gracefully when passed NULL.

There are three cases this code handles:

* name==NULL - create a private shared memory area

* name!=NULL, area doesn't exist - create a public named area

* name!=NULL, area does exist - attach to existing public named area

> My understanding ( misunderstanding :) ) was that with OpenFileMapping()
> a name for the shared memory was needed.  However, we are passing a NULL
> pointer to it instead...

Not always.  Sometimes we pass a name.  When we pass a name, we try
OpenFileMapping() to see if the area exists (was created by another
process, for example).  If the area doesn't exist, we drop through and
try creating it.  If we pass NULL, we will always be creating the area
anyway, so skip the open and go right to the create.

> Is OpenFileMappingA() different.  I only have a reference for
> OpenFileMapping().

FooA() and FooW() are the ascii/wchar variants of Foo().  Windows
macros normally hide them.


More information about the Cygwin-developers mailing list