Share via


mgrier's WebLog

Here is a proposed canonical structure for functions/procedures. Clearly in some cases some sections...

Date: 10/02/2006

Let's review the loader's modus operandi and derive the (once again simple!) rules for what the heck...

Date: 06/29/2005

Hopefully the culmination of these cautionary tales is clear: you're walking a very fine line when...

Date: 06/28/2005

Last time I alluded to the world of hurt you're in when the loader is reentered during...

Date: 06/28/2005

Now we're loaded for bear! We understand how PEs which are either launched via CreateProcess() or...

Date: 06/24/2005

Last time we pondered what does LoadLibrary() do when called inside of a DLL_PROCESS_ATTACH callout....

Date: 06/23/2005

So what happens if you call back into the loader when you're inside a loader callout (DllMain) for...

Date: 06/22/2005

Anyone care to hazard a guess about what happens if you have the following code in your DllMain()?...

Date: 06/22/2005

The Windows DLL loader (I wasn't around then but I assume some of this even comes from the days of...

Date: 06/21/2005

To recap our story from last time: The NT DLL loader starts from some PE (either the main EXE or the...

Date: 06/19/2005

My team maintained the NT loader (the component that loads DLLs) for about a year or so during...

Date: 06/18/2005

I want to follow up on this topic of transactional behavior in memory but to motivate it I'm going...

Date: 06/01/2005

Last time I laid out a little framework for transactional rollback. It clearly is not sufficient for...

Date: 05/18/2005

Buffering the opertations wasn't particularly successful. Let's look at maintaining a rollback log....

Date: 05/17/2005

[Maybe I'll fill in the "n" when I'm done. I haven't had time to plan out the entire series...] In...

Date: 05/11/2005

I want to go on the record and note that I will not be deveoping a Chinese/English Dictionary, in...

Date: 05/11/2005

Let's briefly look at how databases deal with transaction rollback. I'm going to ignore a lot of...

Date: 05/10/2005

Let's go back now to why I had a hard time with using the STL std::map pattern. It was because for...

Date: 05/10/2005

I posted that last item before having my coffee so it's really not suprising that I forgot to get...

Date: 05/09/2005

A quick note for today. Maybe more tonight. Internally at Microsoft, as you can imagine, we have a...

Date: 05/09/2005

Last time I lamented that the fact that std::map::erase() is not permitted to fail made it hard to...

Date: 05/08/2005

I tried three times to write yesterday's entry which was intended to explore the same problems with...

Date: 05/07/2005

Because it’s a long established pattern and contract, let’s explore fclose() today. Here’s my ideal...

Date: 05/04/2005

Yesterday I made the claim that close() can’t fail in a meaningful way. Meaning that if it’s invoked...

Date: 05/03/2005

A topic that comes up repeatedly in designing function is what a coworker of mine calls...

Date: 04/29/2005

A typical CS-ish definition of whether a function has a side effect is whether the function modifies...

Date: 04/28/2005

Before addressing the problems with close_resource(), I want to explore another avenue which is...

Date: 04/27/2005

Is there a bug here? int do_work(char *psz) { some_type *p = NULL; int t; if ((t = foo(&p, psz))...

Date: 04/26/2005

I'm going to start blogging some more and I just wanted to be explicit, as Raymond is, about the...

Date: 04/26/2005

I don’t have a real succinct point tonight, just a long hopefully interesting rant/whine. I...

Date: 04/15/2004

Spot the bug: void CFoo::Bar() { m_array1[m_i++] = null; m_array2[m_j++] = null; } I’ll give...

Date: 02/18/2004

I've been programming since I was a wee tike of 9. Now, 28 years later, I'm amazed because while I...

Date: 02/10/2004

I don't know what to think about this blogging thing but it seems like an interesting mechanism for...

Date: 02/10/2004