« March 2006 | April 2006 Archives | May 2006 »

Ok, now I'm confused

I've been looking at my web server log analysis and I have three peaks in my graphs for the last few days. The first big peak, 6,000 hits per hour, was on 28th March when my relationship break-up post was on the front page of digg. The traffic then tailed off and dropped down to around 130 hits an hour on the 30th. The second peak, of 500 hits per hour, occurred when a link was posted on The Register and stayed on its front page for a while. This traffic then tailed off on the 31st and dropped to…

Deadlock detection tool updates

When I came back from skiing in Colorado I had a bug report from a client and it took me a fair while to isolate the problem for them. The report suggested that a server that I'd built for them a while back was deadlocking in certain situations. The server had always had deadlock problems due to a couple of poor design decisions that I made early on and I'd built a tool to help me remove the potential for deadlock from it by analysing its lock acquisition patterns - the code was too complex for me to do this…

Comments disabled for a while

My hosting provider has changed something in their perl instalation which means that MT-Blacklist (the thing that protects this blog from comment and trackback spam) is broken and not doing its job properly. I've located a fix but need my hosting provider to help me apply it. Until they do I've disabled comments so that I don't have too much crap to clear up once the problem is over. Sorry for any inconvenience. If you have something that you want to say in response to anything I've said then please email me the comment and I'll post it for you…

Comments and trackbacks are now back

I've fixed the MT-Blacklist problem and so comments and trackbacks are now working again.…

What this blog is ACTUALLY about

Given all the publicity that this blog has received recently over my relationship break-up I thought it might be a good idea to give any new visitors a jumping off point into some of the more popular technical pieces. Believe it or not, this blog isn't all about network snooping and infidelity. More often than not it's about C++ on Windows, Test Driven Development and my opinions and whinges about software development issues. So, here are some of the blog posts that will give you a feel for what this blog is really about. [0] - the first entry 80…

TickShifter v0.1

Well, I figure that I've written about these debug tools that I've been working on for long enough. The time has come to make one available for other people to use and abuse. Given that I hope to sell some of these tools eventually I've decided not to give away early versions at present. Much as I will need feedback I think a properly structured beta program would be better for that. So, what I have done is write a cut down tool that demonstrates and uses the same technology that the other tools use. In essence if this runs…

TickShifter v0.2

As I mentioned a while back, I've been working on adding rudimentary GUIs to my debugging and testing tools. In fact, both the deadlock detection tool and the time shifting tool are both functional enough for real world use but the command line interfaces make them harder to use than they need to be. I'm not yet 100% sure of the form that the final GUI should take, but I've pressed on with my initial GUI development to produce a reasonably complete GUI for the cut down, demonstration tool, TickShifter.…

Tools, debug thyselves

One of the first things that I tried to do with the latest release of my TickShifter tool was to run it on itself. Of course, that didn't work. There are several reasons why the tool might have had problems running on itself but I thought I'd addressed most of them when I dealt with the issues around getting multiple copies of the tool running at the same time. The problems there were mostly around the names that I used for the named kernel objects that were required; the control program communicates with the dll that it injects so that…

I love it when a plan comes together

| 1 Comment
Discovering and then fixing the problem that prevented my tools from running on themselves planted a seed of an idea in my mind. My APIHook library and any code that used it died horribly under leak testing tools such as Purify and BoundsChecker. I'd put it down to me trying to be too clever but not being clever enough and ignored it but it's a pain to have code that you can't polish. Solving the problem of the "wrong address" suggested to me that perhaps these other tools were causing similar problems. It's most likely that they both operate in…

Hijacking a thread in another process

My API hooking currently relies on creating a block of memory in the target process to hold the string that you need to pass to LoadLibraryW() and then calling CreateRemoteThread() and passing the address of LoadLibraryW() as the thread start address and the address of our block of memory as the thread parameter. It works well and even allows you to know if the operation worked, by waiting for the remote thread to terminate and then examining its exit code. However, there are times when you might not want (or be able to) create a thread in the target process…
« March 2006 | April 2006 Archives | May 2006 »

About this Archive

This page is an archive of entries from April 2006 listed from newest to oldest.

March 2006 is the previous archive.

May 2006 is the next archive.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics