Andersbakken / rtags

A client/server indexer for c/c++/objc[++] with integration for Emacs based on clang.
http://www.rtags.net
GNU General Public License v3.0
1.83k stars 253 forks source link

Find catch blocks if a function throws/Find potential throws #1383

Open seelabs opened 4 years ago

seelabs commented 4 years ago

Is your feature request related to a problem? Please describe. I often need to audit code to answer the question "if this function throws, where is it caught?" Or "Are there cases where an exception will be uncaught and call std::terminate".

Relatedly, I often would like to know what exceptions a function can throw, and where they can be thrown from.

Describe the solution you'd like Similar to "find callers" I'd like a "find catch blocks". I don't need to filter by exception type. I'd also like to know paths where there is no catch block.

A "find throwers" to find places where in a function's call graph that can throw would also be very useful. I'd love to exclude the standard library from this.

Describe alternatives you've considered I often walk the call graph by hand (using rtags) and look for catch blocks.

Additional context Most of the time, I'm looking for places there an exception may be uncaught. While the other features would be very useful, I'd get the most benefit our of the "find potential uncaught exceptions" functionality.