Background:
Up until now what makes sense for me is that when logMessage is set breakpoints are skipped, but if condition or hitCondition is also set along with logMessage it'd log the message but it'd still break if the condition becomes true, even if logMessage is also set.
However, a user brought up (in microsoft/debugpy#1146) that the description of logMessage mentioned that in https://microsoft.github.io/debug-adapter-protocol/specification#Types_SourceBreakpoint just says in logMessage: "If this attribute exists and is non-empty, the debug adapter must not 'break' (stop) but log the message instead."
I think that this is an oversight in the spec (given that I expected breakpoints to stop in that case and the spec doesn't really say anything about the interaction with other properties -- and this is also how the javascript debugger in VSCode works), but I'd like to confirm if this is the case or not.