Majority of my job revolves around analysis and implementation of HL7 interfaces. Friday, I got a unique opportunity to test my skills. Basically, our front-end GUI application was instantiating a third-party object using the CreateObject call but it was not able to instantiate the object. Unfortunately, the application error logging did not point to anything specific, and since this was on a Citrix server, it would not be easy for easy to install the IDE and debug through the code. So, we had to look at alternatives. The first two things that were brought up were FileMon and RegMon. After spending about an hour analyzing the calls that were going and verifying almost each one we found out that the cause was a Windows Registry permission.
Just thinking about it, my “almost jack of all trades” quality proved to be of great use 🙂 What I mean is that, most of the times when I am working on something, in addition to doing the basic things I also do things around it, a lot of time on things that you wouldn’t normally do. For instance, I was working on an application that created a few DLLs, so there were times when I had to verify the locations and versions of these DLLs. I looked around on the internet and found a few applications, but I had to work around the quirks of these applications to get the information that I needed. Well, guess what I did? After a few uses of these applications, I went and wrote one for my specific needs. In order to write this app I had to learn the ins and outs of COM components and how it was laid out in the Windows Registry. At that time it was probably overkill, but this knowledge became very useful when I was helping troubleshoot the issue on Friday. I always knew that this extra knowledge was not a waste of time; it’s just a fairly long term investment! =D
Coming back to the topic: ProcessMonitor. Sysinternals has recently released the next version of FileMon and RegMon utilities, called ProcessMonitor. I have been playing around with ProcessMonitor and it is a very good progression of these utilities. If you use either FileMon or Regmon, you have to checkout ProcessMonitor.