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