Hi.
I'd like to step into some source code which has only be linked to the project by a static library (mico239.lib).
This library is part of the MICO (CORBA) libraries and has been compiled with nmake, so it has been compiled outside the visual studio 6.0 IDE.
I think that the make file is setup the way that symbol information will be generated but I don't know much about it and the makefile is actually a batch of makefiles.

If you like, you can download the MICO libraries to see what I mean:
Source for MICO Version 2.3.9

By the way, I compile them against STLport-4.6.

The problem:
----------------

Using the Visual Studio's integrated debugger, I set a breakpoint where a method will be invoked where I think this method is defined in that sources I use as a static library.
When trying to step into (F11) the program counter (the yellow arrow) just steps over the instruction. I expected that maybe the debugger reports that it doesn't find appropiate symbol information and wants me to choose a file path to the symbol file but like I said it just steps over the method without prompting.
I manage to step into the code by opening the disassembly view and then use F11 but I'd like to stay on source code level, not on machine code level, so it doesn't help me much.

My source code looks like this:
Code:
#include <CORBA.h>
#include <mico/ir_creator.h>
#include <parser.h>
#include <idlparser.h>
...
BOOL CScriptExecutor::LoadIdlFile (const char *filename)
{
...
  FILE *inp_file = fopen (filename, "r");
  Parser parser (inp_file, filename);
  parser.parse(); //<<----- HERE I'D LIKE TO STEP INTO
...
}
In disassembly view it looks like this:
Code:
...
161:      parser.parse();
01754B6A   lea         ecx,[parser]
01754B6D   call        Parser::parse (0176741e)
...
After stepping into the call the call stack looks like this
Code:
IDL239! 01dd291d()
CScriptExecutor::LoadIdlFile(const char * 0x01ead1c0) line 164
...
This IDL239! 01dd291d() makes me think that the code at the program pointer is from the idl239.lib which might be linked by mico239.lib which is linked to my project.

The corresponding source file might be \mico--main--2.3--base-0\idl\parser.cc
because there is a Parser::parse():
Code:
void Parser::parse()
{
  Parser * oldParser = theParser;
  theParser = this;
  idl_line_no = 0;
  /* yydebug = 1; */
  yyparse();
  theParser = oldParser;
}
...but how do I tell that to the debugger ?

I also tried to use WinDbg from the Debugging Tools for Windows but although I provide the debugger with the path to where I assume the corresponding symbols can be found it reports that it doesn't find appropiate symbol files matching the source file line.

Where is such symbol file ?
Is it the "vc60.pdb", the "idl239.pdb" or the "mico239.exp" ?

I don't know much about these make files and symbol files but I think I know that make files are like project files containing some compiler/linker settings and thus there I can tell the linker whether to create symbol files or not which can be used by the debugger to show me the corresponding code line when stepping into some code.

What is the vc60.pdb ? And how does it distinguish from other pdb's ?

Please help me.