walter-erquinigo wrote:

> Exception Breakpoints are created by the static method 
> LanguageRuntime::CreateExceptionBreakpoint. So they don't require a process. 

Indeed, but let me elaborate. What I need is a method that doesn't require a 
process that could tell me if a certain language can support exception 
breakpoints, as that's what the checks in the `breakpoint set -E <lang>` 
command try to do.

Then I had two main choices w.r.t `LanguageRuntime`:
- Add the method as non-static `LanguageRuntime`, but `LanguageRuntime` 
instances do require a process.
- Add a static method in `LanguageRuntime`, like `CreateExceptionBreakpoint`, 
but it turns out that `CreateExceptionBreakpoint` ends up relying on 
`Language::GetDefaultExceptionResolverDescription` and 
`Language::GetExceptionResolverDescription`. So this made me believe that it'd 
be better to place all the static exception feature bits in `Language` and not 
`LanguageRuntime`. `LanguageRuntime` seems to be a place more suited for 
dealing with runtime behaviors and not static pieces of information.

> It's a little awkward to have a static method in LanguageRuntime that makes 
> the Exception breakpoint conditioned by a Language method 
> 'SupportsExceptionBreakpoint".

I somewhat agree with it, but probably I'd end up writing a static method 
`LanguageRuntime::SupportsExceptionBreakpoint` that invokes a non-static 
`Language::SupportsExceptionBreakpoint`. And as I mentioned, there's already 
precedent for other exception related stuff in `Language`.

https://github.com/llvm/llvm-project/pull/97675
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to