RE: (long) ch8 loopback probs and debug symbols

> Some guy told me writing

windows drivers is much easier than writing linux drivers. I am really
beginning to wonder if thats true.

To me, Linux drivers are much easier to code than their NT relevants but
debugging NT drivers is more efficient or enjoyable, well if you have
everything setup correctly.

nt!RtlpBreakWithStatusInstruction:
8052a488 cc int 3
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for halaacpi.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for BOOTVID.DLL -
*** ERROR: Module load completed but symbols could not be loaded for
ACPI.sys
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for WMILIB.SYS -
<72 similar lines deleted>

Symbols for listed modules aren’t loaded correctly. To examine symbol for a
specific module, use “!lmi moduleName” command, for instance:

kd> !lmi ati2mtag
Loaded Module Info: [ati2mtag]
Module: ati2mtag
Base Address: bac25000
Image Name: ati2mtag.sys
Machine Type: 332 (I386)
Time Stamp: 420d1261 Fri Feb 11 15:15:29 2005
Size: 201000
CheckSum: 1f01d6
Characteristics: 10e
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 5f, 154da0, 153da0 RSDS - GUID: (0x16c0fad7,
0x1a06, 0x4e2e, 0x80, 0xcb, 0x45, 0x46, 0xd7, 0xcb, 0x42, 0xd6)
Age: 3, Pdb:
C:\depot\8.09.2\drivers\2d\ntx\r6\miniport\objchk-xp\i386\ati2mtag.pdb
Image Type: MEMORY - Image read successfully from loaded memory.
Symbol Type: PDB - Symbols loaded successfully from image header.

C:\depot\8.09.2\drivers\2d\ntx\r6\miniport\objchk-xp\i386\ati2mtag.pdb
Compiler: Resource - front end [0.0 bld 0] - back end [7.10 bld 2179]
Load Report: private symbols & lines, not source indexed

C:\depot\8.09.2\drivers\2d\ntx\r6\miniport\objchk-xp\i386\ati2mtag.pdb

To troubleshoot symbol loading, use “!sym noisy” to enable verbose output
and reload the symbol.

kd> p
nt!KeUpdateSystemTime+0xfb:
8053d4cb 7f1f jg nt!KeUpdateSystemTime+0x11c (8053d4ec)

I was expecting to see C-level source code. This looks like assembly
steps. Is this what I’m going to get with symbols enabled? Does the
symbol dir grow dynamically? ie. pick up new symbols from microsoft’s
site as it needs them?

You won’t be able to do source level debug on a module unless you have the
SOURCE CODE of it.

FWIW, I have this entry in my File->symbol file path:
SRV*h:\win2ksymbols*http://msdl.microsoft.com/download/symbols:;D:\progs\d
rivers\chap8\driver\i386

I would remove the extra column after the word “symbols”

I can open the driver source file in WinDbg, but I can not place the
cursor on a line in the output and then click on the “insert or remove
breakpoint button.” If I do, I get a large pop-up which says, “Symbol
information for the current line can not be found…” Which doesn’t make
sense since I have the directory containing the .pdb file in the symbol
search directory. Or, do I?

As mentioned earlier, use !lmi command to examine the symbol for the
particular module.

HTH,
Calvin

Calvin Guan Software Engineer
ATI Technologies Inc. www.ati.com