---
title: "[Rediscovered] Advanced debugging tips and stuff you never knew about the \"Find\" combo box"
url: "https://osherove.com/blog/2004/10/12/rediscovered-advanced-debugging-tips-and-stuff-you-never-kne.md"
canonical: "https://osherove.com/blog/2004/10/12/rediscovered-advanced-debugging-tips-and-stuff-you-never-kne.html"
published: "2004-10-12T00:27:00"
updated: "2004-10-12T00:27:00"
tags: [".Net Original"]
author: "Roy Osherove"
description: "I just \"re-discovered\" an old post of mine relating to some cool debugging tricks. Its amazing I forgot all about these cool tricks and it was fun to rediscover them. I bet some of you could benefit from them (again).…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# \[Rediscovered\] Advanced debugging tips and stuff you never knew about the "Find" combo box

By Roy Osherove October 12, 2004 In [.Net Original](https://osherove.com/blog/category/net-original)

**Historical article** · Originally published October 12, 2004; technical details may be outdated.

_I just "re-discovered" an old post of mine relating to some cool debugging tricks. Its amazing I forgot all about these cool tricks and it was fun to rediscover them. I bet some of you could benefit from them (again)._

_So - as they say, "Let the recycling begin!"_

[**Advanced debugging tips and stuff you never knew about the "Find" combo box**](https://weblogs.asp.net/rosherove/archive/2003/07/08/9793.aspx)

1) **You can set breakpoints on the callstack** window as well - just select the call and hit F9 or right click. great for recursive functions.

2**) You can set individual breakpoints on different expressions** on the same line bye setting the cursor in the specific expression and hitting F9

3) **CTRL+B - advanced breakpoint properties dialog**(if you didn't know this already)

4) **You can set a breakpoint directly on a specific method in a class if you know their names**. Just write down the "class.method" in the "Function" tab of the breakpoint properties dialog and you'll save yourself lots of time in finding that point in code and pressing F9.

**Notices**:

- It's case sensitive if you're using a case-sensitive language
- The method name might not show up in C++ debugging if it's hidden in a DEFINE
- You must select the correct language in the breakpoint dialog.
- Oh one more thing - if youre using managed C++ you'll have to prefix the debugging expression with "MC::" so to set a break on class MyClass with function MyFunc you'd have to write "MC::MyClass::MyFunc" in the breakpoint dialog.

5) **You can write breakpoints that break on calls to the framework classes**. for example - you could write in the breakpoint dialog - "Console.WriteLine" and you'll break into disassembly whenever you call that function(You'll get a long list of "child" breakpoints for each of that method's overloads in the breakpoint window)
You can also break on properties, but you'll have to prefix the property name with a "get\_" or "set\_" prefix.

6)(best one) **Auto-search for methods to breakpoint on.** In the breakpoint dialog, if you type just the name of a method that you know exists, and that method is unique in the application, you'll automatically set a breakpoint there, without the need to specify class name.
**BUT** - if you have overloads to that method, or it exists in more than one namespace, you get a list of all the available methods and overloads, allowing you to select on which ones you'd like to set a breakpoint, and the best part - you have an "All" button to quickly set a breakpoint on all of them.
If you'e debugging C++ - you can write the \[name of a class\]+ "." and you'll get a list of all members that can be debugged.
note: DON'T try this in other languages - you'll get a very nast crash if you do!

7)**A few things you should have known about the "Find" combo on VS.NET's main toolbar:**

- If you type the name of a solution file or any other file that is somehow related to the project or is in the INCLUDE environment variable and then press CTRL+SHIFT+G - VS.Net will open that file in the eidotr for editing.
- If you write the name of a method (or class.method) like in the breakpoint dialog and press F9 - you'll get the same functionlity like in the breakpoint dialog.
- If you type in ">" in the find combo - you'll see that it turns into a run of the mill command line! (including intellisense and all)

\[Much of this was learned from the book "[Debugging Applications for Microsoft .NET and Microsoft Windows](https://www.amazon.com/exec/obidos/ASIN/0735615365/qid=1057615405/sr=8-1/ref=sr_8_1/iserializable-20)"\]

and here's a nice tip.

**Imagine getting a nasty exception messagebox** (or any other message box in windows)(sounds familiar?). Try pressing CTRL+C while the messagebox is still open. then open notepad and press CTRL+V. Have fun!

## More in .Net Original

[All posts in .Net Original](https://osherove.com/blog/category/net-original)

- Oct 15, 2004

    ### [\[Tools and Addins\] : SharpTools, web controls and various utilities - free!](https://osherove.com/blog/2004/10/15/tools-and-addins-sharptools-web-controls-and-various-utiliti.html)

- Oct 12, 2004

    ### [Introducing the Osherove.Interception framework](https://osherove.com/blog/2004/10/12/introducing-the-osheroveinterception-framework.html)

- Oct 5, 2004

    ### [Introducing: XtUnit . An Unofficial Unit Testing Extensibility Framework - Add new attributes to NUnit or MbUnit easily!](https://osherove.com/blog/2004/10/5/introducing-xtunit-an-unofficial-unit-testing-extensibility.html)

- Oct 3, 2004

    ### [Upcoming talks and webcasts I'm involved with](https://osherove.com/blog/2004/10/3/upcoming-talks-and-webcasts-im-involved-with.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
