Share via


Debugging Visual Basic .NET Applications

Posted June 27, 2003

Chat Date: June 17, 2003

Please note: Portions of this transcript have been edited for clarity

Chat Participants:

  • Deeptanshu Verma, QA in the Visual Studio debugger team
  • Monica Rosculet, Work for the VS Debugger QA team
  • Gregg Miskelly, Work on the debugger
  • Ed Hickey, MVP lead for the Visual C++, .NET Security, and Scripting

Moderator: Ed (Microsoft)
Welcome to today’s chat on Debugging Visual Basic .NET Applications. We have members of the Visual Studio Debugging team here to answer your questions today. I will ask the hosts to introduce themselves.

Host: Gregg (Microsoft)
Hi, I am Gregg. I work on the debugger.

Host: Deeptanshu (Microsoft)
Hi! I am Deeptanshu Verma (just call me Deep), and I am a QA in the Visual Studio debugger team.

Host: Monica (Microsoft)
Hi, I'm Monica and I work for the VS Debugger QA team.

Moderator: Ed (Microsoft)
And I am Ed Hickey, VB Communities PM. Glad you all could make it today!

Let's get started! Fire away with your questions for our hosts.

Host: Gregg (Microsoft)
Q: Is it possible to debug (step thru) a classic ASP app and also step into a VB6 dll in the same debug session within VS.Net? In other words... can we throw out Interdev even if we have not begun .Net development?

A: Depends. Where is your VB6 code being loaded? Is it a Windows app, or loaded by IIS? Is your VB6 code compiled to native?

Host: Gregg (Microsoft)
Q: Is it possible to debug (step thru) a classic ASP app and also step into a VB6 dll in the same debug session within VS.Net? In other words... can we throw out Interdev even if we have not begun .Net development?

A: Since your VB6 Application is compiled to native, then you will be able to debug the application, but not at the same time that you are debugging your ASP script...However, you would have had the same issue with VB6 (assuming that the code was also being compiled to native). To debug the VB6 code, you will need to manually attach with the Native engine to IIS. To debug the ASP code... you can automatically attach to IIS with the project.

Host: Gregg (Microsoft)
Q: Is it possible to step through MS-provided object's code (e.g. the DataGrid) from with Visual Studio .NET?

A: Yes. You can set named breakpoints on any function you want, and you can step into the framework code from the disassembly window.

Host: Gregg (Microsoft)
Q: Gregg_MS: could you explain "Attach to IIS..."?

A: Sure. Open the processes dialog, and attach to the IIS process. IIS runns under a different process depending on your configuration / version of windows. It could be dllhost.exe, mtx.exe, inetinfo.exe, or w3wp.exe. Probably the easiest way to find the process that you want is to use listdlls.exe -d <your_dll_name>. You can get listdlls.exe from www.sysinternals.com.

Host: Gregg (Microsoft)
Q: Ahh, only in the dissassembly window?

A: You can set breakpoint from outside the disassembly window, but you can't F11 into a function you don't have symbols to outside of disassembly.

Host: Deeptanshu (Microsoft)
Q: When I step through code in the IDE, and I look at items in the watch window, I can't see a lot of "embedded" items, such as the sub-tables in a dataset. Any plans to enable this in the future?

A: Hi Wynn_Phorm & DerekLL, VS .Net 2003 has improvements to view collections that let you view the data more intuituvely. I think you might be using VS .Net 2002 that had a different expression evaluator. For viewing datasets, we do have improvements to data viewing planned for the next release, but I cannot yet say what the final implementation feature set will be.

Host: Deeptanshu (Microsoft)
DerekLL : Just noticed that aggregate details are not available in watches. This is VS.NET 2003, Evaluation edition. We are adding support to improve data display.

Host: Monica (Microsoft)
Joe, how about putting a System.Diagnostics.Debugger.Break() statement where you want to start debugging your app. This will give you the chance to attach to your app. Joe, The start URL option is there so that you could start IE with a certain web page, like a html for example. This will help you debug the script in your web page. But your scenario is totally different. If you want to pass arguments to your exe, you could just use the Command Line Arguments property. Joe, the options was not intended for NTD. It is supposed to give more flexibility for launching web pages in IE. Joe, we'll be looking into this scenario and maybe consider it for a future release. OK Joe, hope that will work :) I understand it could be a little inconvenient, but this is not a very common scenario. Maybe in a future release we'll improve this experience. Joe, even if this feature becomes very common, ASP.NET will still be needed and used. The concept of running code on one server as opposed to multiple machines will always be around I think. :)

Host: Gregg (Microsoft)
Joe: The start page URL code is really for ASP.NET debugging, or if you want to debug the script code from IE. You don't want to debug IE or ASP.NET but rather a child process of IE. We don't support child process debugging.

Host: Deeptanshu (Microsoft)
Q: What about support MouseOver in the debugger to get variable values when using "With" statements!

A: Hi PSD1, we will look into this.

Moderator: Ed (Microsoft)
Q: you know someone has to ask this, may as well be me. is edit and continue going to find its way back with the release after 2003?

A: Yes, Edit and Continue will be back in a future release. I'm not sure I can say which one yet, but it will be "sooner" rather than "later".

Moderator: Ed (Microsoft)
This has been a GREAT chat. Thank you to everyone. Unfortunately, it is time to go. Thanks for participating, and we'll see you next time!

Host: Monica (Microsoft)
Thanks a lot!

Host: Deeptanshu (Microsoft)
Bye Bye!

For further information on this topic please visit the following:

Newsgroups: microsoft.public.dotnet.languages.vb

VB .NET Transcripts: Read the archive of past VB .NET chats.

Website: Visit the Microsoft Visual Basic .NET site.

Top of Page Top of Page