Where is my Source Browser?


If you’re an experienced Visual C++ 6.0 user, chances are you’ve become quite attached to the Source Browser tool. This tool provided rich browsing functionality for any project that generated a .bsc file. It was accessible from the Alt+F12 shortcut, and users could obtain information for an identifier. The choices were things like “Definitions and References”, “Base Classes”, “Derived Classes” and “Call/Callers Graph”. Well needless to say, if you have used Whidbey, you know that we have made sure to provide all this functionality. In addition, we have made it much simpler to use and more ubiquitous. In other words, much of the functionality is available through direct means such as the “Class View” window, which shows base and derived classes. In addition to spreading the functionality across the IDE, we have a browsing tool called the Object Browser (so don’t go looking for the name Source Browser). This feature was sorely lacking from 2002 and 2003 and we took special care to re-create it and improve it. For example, creating the bsc file was always a bit of an issue, as it could add 10-15% to a project’s build time, and more importantly, it meant that the information visible in the source browser was only as fresh as the last compilation. With Visual C++ 2005, we have eliminated the need for that file, instead the Intelllisense engine adds that information to its store so that it is always available and always live. On the other hand, you can still generate the file and it can opened in the Object Browser in order to get this information without having a project for it. I recently came across a customer who asked why he could browse the entire .NET framework in the Object Browser but could not do the same for MFC. I was happy to reply that is very easy to do this! All one needs to do is add the mfc.bsc file into the Custom Component Set of the Object Browser and voila!


Well, that’s enough of a spiel (I have to figure out how to add pictures to this post as it would definitely help 🙂


Finally, I urge you to send me/us your feedback on this area because we really want to make sure it meets the needs of every single VC++ 6.0 user. And by the way, the Call Graph (a.k.a. Call Browser) functionality is *only* available in C++. Take that C#!

Comments (3)

  1. David Lowndes says:

    Even now it’s been released, there’s precious little documentation on the new call browser in MSDN so perhaps you could answer these points (and get them documented in MSDN):

    1. In the Callers Graph, what do the icons mean? What’s the difference between the icon with a small distinct green "?" and the larger feint green "?" ?

    2. Some items are displayed greyed out. This appears to be where a function name matches, but the parameters don’t – in other words, it’s not the function you were searching for, in which case, why list it?

  2. Ivan says:

    Thanks a lot. It took quite some time and back and forward keyword search filtering to find this info in Google. Great!

  3. Michael says:

    Thanks.  I am still using VC6, but every other computer I try to help people on is running something else, so this was bugging me.  Is it possible to use ONLY the .BSC file for this (i.e., keeping Intellisense separate)?  My motivation is that I frequently find Intellisense breaks randomly, even when the code compiles correctly.  The most important function of the VC6 Source Browser was, after all, navigating large code bases (typ 10k-100k for me), and I hope nobody writes that much code without getting some of their files to compile.  As such, the out-of-date objection is either insigificant, or totally outweighed by the concern about Intellisense breaking an otherwise robust function.  Since the failure is seemingly random (sometimes related to sharing problems on the .ncb, or perhaps even to a particular source control system…not VSS), it may take awhile for me to figure out whether this is an issue or not, but I’ll get back here when I think I know.