View Single Post
09 Nov 2009  


Quote   Quote: Originally Posted by zx81 View Post

Thank you for sharing this nice tutorial!

I did not yet installed the Windows debugger, but I have a question.

In the tutorial, I read this:

c) Set the path to be the following:
I don't understand the above, I never have created a path with SRV*, and the directory, and then a http:// link, can you give an example of how to set the path correctly?

Best regards, and I hope to see a new tutorial from your hand soon ;-)

Hello zx81. I recall having used your namesake computer somewhere around 1982/83. Ah, the memories

I understand your natural reluctance to call something that looks like the text string above a "path", but it makes sense to the debugger. The SRV... syntax means that what follows is a multi-part value. In detail:

SRV*<path_1>*<path_2> tells the debugger to first try find the symbol in <path_1>, then resort to <path_2> if necessary. If it turns out that <path_2> does have the necessary symbol, it will be automatically copied to <path_1> for faster future access.

These are all valid symbol paths, assuming the C:/D:/E: drives and target folders exist on the machine in question:




The fact that <path_1> is a "DOS" path while <path_2> is reached via HTTP is incidental. This is also a valid sympath, although it obviously doesn't reach the MS symbol server:


If appropriate, it is also OK to combine multipath "SRV" entries with traditional syntax (as found in the system PATH environment variable):


Obviously, the example above would be somewhat slower for general-purpose debugging because it would cause the debugger to look in E:\SomeApp\Symbols every single time, before resorting to the SymCache+HTTP combination.

A truly convoluted sympath may be something like this:


In practice, once you get to the point where your debugging needs necessitate sympaths that complex, it's better to set up separate "workspaces" for different types of debugging, but that just confuses the issue for our purposes here.

I hope that explanation makes more sense. If not, please let me know!
My System SpecsSystem Spec