VB6 beginners tutorial - Learn VB6

Advanced VB6 tutorial - Learn Advanced VB6

Systems Analysis - System analysis and Design tutorial for Software Engineering

You are here: Visual Basic > Advanced VB6 tutorial > Chapter 19

Debugging Features in Project Groups

With the project group properly set up, you are now ready to explore some of the debugging features you can take advantage of when using project groups. When working with multiple components, it is possible to treat them all as independent projects and completely finish one before ever working on another. In such a scenario, you would test and debug each of your components separately. Then, after you have built all the components in to actual DLLs and EXEs, you would combine them with your main application and begin integration testing. If you were always able to do things this way, and there were never any bugs missed, there would be no need to test or debug in project groups. However, that doesn’t happen often.

Debugging within a project group is not any different from regular debugging. The same techniques are used—breakpoints, errortrapping, and stepping through code—but they apply across all the projects in the group. You can set breakpoints in any of the projects, not just the startup. If that line is about to be executed, it will pause at that point, just as you would expect. This can be useful in determining exactly when an object is created, initialized, and terminated, and will even work across multiple instances of one project. The Debugging Error-Trapping setting, which can be set to Break on All Errors, Break in Class Module, or Break on Unhandled Errors, behaves as it does with a normal project, but applies across all the projects in a group. It is not possible to set different debugging options for individual projects because these options are really environment-level options, not project-level ones.

Stepping through the executing code is where the true power of project groups becomes clear. It is possible to step, line-by-line, through the code of one project, into the code of another. When dealing with ActiveX components, this could mean hitting an object call in one project that takes you immediately to the code of that object’s property or method, possibly passing through some initialization code on the way.

<< Previous | Contents | Next >>

Home | About Us | Privacy Policy | Contact Us

Copyright © | All Rights Reserved