I am trying to use lldb for c++ debugging and I want to halt if an exception is thrown, like gdb's catch throw
, and I cannot find an equivalent in the lldb documentation.
Asked
Active
Viewed 2.8k times
3 Answers
80
Use breakpoint set -E c++
to break on all exceptions and breakpoint set -F std::range_error
to break on a specific exception.

Lucian Adrian Grijincu
- 2,491
- 2
- 18
- 18

Jonas K
- 4,215
- 2
- 24
- 25
62
In Xcode, you can set an Exception breakpoint (View > Navigators > Show Breakpoint Navigator, hit the + button in the bottom of the breakpoint list window to add a new breakpoint).
If you're using command line lldb, put a breakpoint on __cxa_throw
for C++ exception throws, objc_exception_throw
for Objective-C exception throws.
For all c++ exceptions: break set -E C++
.

Ven
- 19,015
- 2
- 41
- 61

Jason Molenda
- 14,835
- 1
- 59
- 61
-
16for all c++ exceptions: break set -E c++ – plaisthos Oct 08 '12 at 11:33
-
1ah, I missed the -E option to breakpoint set! Thanks for noting it. – Jason Molenda Oct 08 '12 at 19:03
-
3The '-F' and '-E' variants weren't working for me, but 'breakpoint -n __cxa_throw' did work (for all exceptions), as well as 'breakpoint -n
' (for specific exceptions). – Anthony Hall May 26 '15 at 18:56 -
1"-E objc" also works if you want Objective-C exceptions. – Maurice Gilden Jul 02 '18 at 08:24
-
`break set -E c++` didn't work for me (perhaps because I'm using real GNU g++ instead of Apple's clang++?), but `break set -n __cxa_throw` did. @AnthonyHall's comment is lacking `set`. – Mark Gates Feb 12 '19 at 22:16
0
I think breakpoint set -w <boolean>
is the correct answer, you can use help breakpoint set
to see the document.

Casa Taloyum
- 1
- 1