Lockdesign Diagnostic Tools Aid VB Debugging

Diagnostic Tools FAQ

1. I've added profiling/tracing/object monitoring code but when I run my project I don't get any diagnostics reported.
2. I've added profiling/tracing/object monitoring code and added the conditional compilation directive but I get errors trying to make the calls to the diagnostic methods.
3. I've got profiling/object monitoring code in place, I've defined the conditional compilation argument but I don't get any data when the diagnostic form is shown.
4. Why can't the profiler/object monitor displays refresh automatically?
5. Why do I have diagnostic data left around from the previous run when I start my project?
6. What is the difference between a registered and unregistered version?
7. Can I use the diagnostic tools in a compiled program?
8. Can I remove the Lockdesign ImmClear AddIn if I'm using the Lockdesign Diagnostic Tools?
9. When I started a project using the Lockdesign Diagnostic Tools I got a message box informing me that the reference to the Diagnostic Tools had been fixed. What exactly does this mean?
10. Why can't the addin automatically add the appropriate conditional compilation parameter for me?
11. Could the tools form show me what diagnostics have been added on a method by method basis?
12. Could I add my own diagnostic code inside the conditional compilation statements for the diagnostic code?
13. My tracer/profiler/object monitor/diagnostics/diagnostic tools window is permanently minimized or maximized. What can I do?

 


 

1.  

Ensure that you have the appropriate conditional compilation argument set in the Project Properties box. These are :

  • LOCKDES_PROFILE=1 to enable profiling
  • LOCKDES_TRACE=1 to enable tracing
  • LOCKDES_OBJMON=1 to enable object monitoring
2.   Ensure that you have referenced the tools either manually via the Project - References dialog (check against Lockdesign Tools) or via the tools diagnostics form using the toolbar button to add the reference.
3.   Remember that the profiling and the object monitor diagnostics are only refreshed when either the Refresh button on the toolbar is pressed or when a call is made to one of the diagnostic tool API methods to force a refresh. These methods are fully documented in the help file supplied with Lockdesign Diagnostic Tools.
4.   The profiler cannot refresh automatically because the time taken to refresh makes the profile timings meaningless. The object monitor does not refresh because the level of screen flicker in an environment where large numbers of object creation/deletions are taking place makes it unreadable.
5.  

The data in the diagnostic windows is not cleared down when the form is closed by design. The diagnostic data must be cleared either manually using the Reset button or via the diagnostic tools API method to force a reset. These methods are fully documented in the help file supplied with Lockdesign Diagnostic Tools.

6.  

The unregistered version has the same functionality as the registered version to allow a full evaluation. However it is crippled in the following manner:

  • The caption of diagnostic form windows indicate the tools are not registered.
  • Code included via the diagnostic tools has an additional comment indicating that the tools are not regsistered.
  • Occasionally, there is a message box popped up when VB starts informing that the tools are not registered.
  • Diagnostic form settings, such as font preferences, are not persisted when the diagnostic form is closed down.
7.   Certainly. However be aware that when the compiled program is shut down the diagnostic forms will also close down. It may be necessary to use the diagnostic tools API methods to ensure that your diagnostic data is saved before your program exits.The diagnostics form is particularly useful in the compiled environment as it allows reporting of diagnostics in a separate environment to your application.
8.   Yes if you are using VB6. The code to automatically clear the immediate window when the project is run has been implemented into the VB6 version of the diagnostic tools so that it is only necessary to have the one addin.
9.   This should only occur if you have installed a new version of the addin which was binary incompatible with the previous version. When a project, which references the tools, is loaded the addin performs a check to ensure that the project is referencing the current version. If it is not then it corrects it. My next project is to write an addin which will automatically check, and optionally fix, any broken references when a VB project is loaded.
10.   The object model provided by Microsoft does not provide run time access to the conditional compilation arguments. Whilst I have found a method for doing this (see AddIn FAQ), it has proven to be less reliable than would be preferred to implement into the tools. However, if this mechanism is improved then it will be implemented. In the meantime there is a message box which pops up to remind you to set them. This message box may be disabled.
11.   This was considered this but seeing as the diagnostic code could be removed from the code manually it would mean that almost constant checking would be necessary. This may be given further consideration in the future.
12.   You may but it's not recommended it since if you use the diagnostic form to remove the diagnostic code then your code will also be removed as the tool removes all code between the #If and #End If statements.
13.   This is a problem in Versions 1.0 and 1.1 of the Diagnostic Tools. Read the bugs page for details of the workaround to get your problem window back to normal.