> The "source-level" part is clear, but what about "stepping to > columns"? The command steps by expressions, not by columns. Well, the column metadata is essentially emitted for expressions and statements (or "logical breakpoint locations"), but the actual meta data that is recorded is by column (and a statement flag), so we can't really be _entirely_ sure that what we're stepping to is an expression or statement, even though that is what it's /intended/ to represent. Which is why I used column and expression interchangeably. Perhaps further explanation is required here, or possibly even renaming the feature to `next-column` and `step-column` for the two variants that I've implemented; where the `step` variant behaves similarly to what the normal step/next counterparts do; i.e. if there's an inline frame on the same source file (like a lambda or callback) then step will step into it, whereas next will step over it. The 2 variants will be in the upcoming v3. > There's no need for too much detail, if this is an old feature. Just > say something like > > The support for expressions was added to DWARF2 30 years ago, so any > compiler which emits DWARF2 debug info should nowadays produce the > information required by this command. E.g., GCC supports this since > version . > > (Assuming it is true that every compiler released reasonably recently > will produce this as part of DWARF debug info.) Right, I've only tested with the latest, but I'm pretty sure that the last 4-5 years of compilers at least emit column meta data. I've tested gcc-12, clang-14 and the latest rustc compiler (I know rustc has emitted it for at _least_ 5 years). I'm building gcc-8 (5+ years) as I write this and will test that. Where in the manual would you like me to put the above paragraph? Together with the documentation of the command or somewhere else? And the same question goes for > We need to explain in the manual that the "columns" actually are (or > are likely to be) byte offsets from the beginning of the source line.