values.  See also  numbers 
  CustomErrors values, 262 
  false value, and Double value, 66 
  message stage values, 264-265 
  TraceLevel enumeration values, 203 
  value of true, 33-34 
     van der Linden, Peter, 218 
     variables , problems with unequal , 65-66 
     VB .NET 
  vs. VB 6.0, and viewing public methods , 327-328 
  VB 6.0 application using VB .NET component, 329-333 
  COM Interop application, 332-333 
  VB.Classic preparation, 331 
  VB .NET preparation, 330 
  VB .NET applications using VB 6.0 components , 323-329 
  COM Interop application, 326-327 
  tips, 327-328 
  VB 6.0 debugger, 328-329 
  VB.Classic preparation, 323-324 
  VB .NET preparation, 325-326 
  Windows services and, 309 
     VB .NET Can Combine COM Early Binding with Good COM Versioning (code), 335-336 
     VB .NET Component Code for use by a COM Client (code), 330 
     VB .NET language compiler, 79-80 
     VB .NET, language surprises , 33-69 
  class member overloading, 34-40 
  ambiguous, 34-36 
  C# overload, 38-40 
  C# vs. VB .NET, 36-38 
  inheritance issues, 41-53 
  better equality, 48-49 
  equality, 45-48 
  inheritance and method visibility, 49-51 
  inheritance tree navigation, 51-53 
  shadowing by accident , 41-42 
  shadowing, further issues, 42-45 
  miscellaneous gotchas, 53-67 
  boxing conversions, 57-58 
  confusion between developer and compiler, 53-55 
  confusion between VB .NET and C#, 55-57 
  inexact numbers, 67 
  NaN trouble, 63-65 
  numbers as, 59-63 
  unequal variables, 65-66 
  summary, 68 
  trusting software, 69 
  value of true, 33-34 
     VB .NET strategic debugging issues, 3-31 
  application availability, 10-14 
  measuring, 12 
  software availability and, 13-14 
  understanding, 10-11 
  application reliability, 4-10 
  measuring, 6-7 
  software reliability and, 7-10 
  understanding, 4-5 
  debugging complex systems, 14-18 
  building by contract, 15-16 
  possible solutions, 18 
  understanding communication issues, 16-18 
  debugging developer psychology.  See also  E&C 
  psychological factors, 25-28 
  folklore of debugging, types of bugs , 29-31 
  summary, 28 
     VB .NET tracing, 188-211 
  summary of, 211 
  trace activation, 193-194 
  trace control at compilation time, 202-207 
  BooleanSwitch class, using, 203 
  custom trace switches, creating, 204-207 
  TraceSwitch class, 203-204 
  trace control at runtime, 207-211 
  assertion redirection, 210 
  boolean switch activation, 209 
  trace listeners, adding and removing, 208 
  trace switch activation, 209 
  trace creation, 188-193 
  Assert and Fail methods, 190-192 
  assertions, 192-193 
  Write and writeLine methods, 188-189 
  WriteIf and WriteLineIf methods, 189-190 
  trace listening 
  custom trace listeners, creating, 198-202 
  DefaultTraceListener, 194-195 
  EventLogTraceListener, 197-198 
  TextWriterTraceListener, 195-197 
  TraceListener Class, 194 
     VB.Classic debugging, 321-338 
  COM versioning problems, overcoming, 333-337 
  Evil Type Coercion, 134 
  managed vs. unmanaged, 322 
  summary, 337 
  "The Last Bug", 337-338 
  VB 5.0 vs. VB 6.0, 321 
  VB 6.0 application using VB .NET component, 329-333 
  COM Interop application, 332-333 
  VB.Classic preparation, 331 
  VB .NET preparation, 330 
  VB .NET applications using VB 6.0 components, 323-329 
  COM Interop application, 326-327 
  tips, 327-328 
  VB 6.0 debugger, 328-329 
  VB.Classic preparation, 323-324 
  VB .NET preparation, 325-326 
  VB.Classic versions, 321 
  vs. Visual Studio .NET debugger, 73, 75, 84, 94 
  basic differences, 73, 75, 84 
  Immediate mode and, 94 
  Source windows and, 97-98 
     versioning 
  overcoming COM versioning problems, 333-337 
  version requirements, SQL, 339-340 
     Visual Basic .NET.  See  VB .NET (several headings) 
     Visual Studio .NET debugger, 73-122 
  advantages of, 73-74 
  ASP .NET process debugging with, 292 
  attaching from, to ServiceAdmin process, 313 
  debugging add-ins, 236-237 
  direct debugging with, 343-346 
  Ildasm and, 158 
  installing services and, 314 
  introduction to, 73-77 
  advanced breakpoints, 75-76, 103-106 
  application knowledge, 76 
  debugger automation, 77 
  distributed debugging, 75 
  low-level access, 76-77 
  multiple modes for, 75 
  remote debugging, 76 
  single user interface, 74-75 
  Modules windows, 76 
  PermView, 173 
  remote debugging restrictions and, 473 
  SQL server 
  application debugging, from inside and, 348-351 
  application debugging, from outside and, 351 
  requirements for debugging, 340 
  summary, 120-121 
  three debugging modes, 84-93.  See also  process debugging 
  basics of, 84-85 
  IDE debugging, 85-86, 396-398, 398-399 
  JIT debugging, 91-93 
  vs. VB.Classic debugger 
  basic differences, 73, 75, 84 
  Immediate mode and, 94 
  Source windows and, 97-98 
  Visual Studio debugger IDE, 93-118.  See also  breakpoints 
  Autos windows, 111-112 
  Call Stack windows, 114-115 
  Disassembly windows, 117-118 
  Immediate/Command windows, 93-96 
  Locals windows, 109-111 
  Me windows, 113 
  Modules windows, 115-116 
  Output windows, 96-67 
  QuickWatch windows, 109 
  Running Documents windows, 118 
  Source windows, 97-99 
  Threads windows, 118 
  Watch windows, 107-108 
  Visual Studio debugger IDE issues, 118-120 
  Chr(0), 119-120 
  debugger single-stepping , 120 
  refusing to appear, 118-119 
  wish list for debugging, 121-122 
  workings of, 77-84.  See also  build configurations 
  basics of, 77-79 
  DebuggableAttribute class, 79 
  JIT compiler, 80 
  VB .NET compiler, 79-80 
  Visual Studio debugger, 80 
  Visual Studio .NET debugger, using, 123-151 
  active debugger process, setting, 138-139 
  CIL, debugging, 144-146 
  code optimization, 146-150 
  basics of, 146-148 
  as enemy, 148 
  test of, 149-150 
  debug symbols management, 140-143 
  symbol server, 142-143 
  symbols for applications, 140 
  symbols for framework SDK, 141 
  symbols for Windows, 140-141 
  E&C, coping without, 143-144 
  JIT debugging, improving, 143 
  obfuscated VB .NET, 151 
  preparation, 123-130 
  Edit and Continue options, 126-127 
  general debugging options, 123-126 
  JIT options, 127 
  Native options, 128 
  other useful settings, 129-130 
  Project Default options, 128-129 
  production applications, debugging, 139-140 
  project preparation, 133-138 
  project build configuration, 137-138 
  project build options, 133-134 
  project optimization options, 136-137 
  project start options, 134-136 
  solution preparation, 130-133 
  solution build configuration, 132-133 
  source files search paths, 130-131 
  symbol files search paths, 131 
  summary, 150