Michael137 wrote:

> Sounds like a nice feature to have. I'm not really familiar with these APIs, 
> so I don't have much to say in the way of specifics. One high level question 
> I have (I can't tell from the patch) is how are these files actually handled. 
> Do we need to (preemptively) read them into some clang-owned buffer, or can 
> we say something like "there is a file here, come back to me if you need it". 
> I have two reasons for asking this: I'm wondering if this will have any 
> impact on our memory footprint; and I'm wondering how will this behave if the 
> file is changed (or deleted) during the course of the debug session.

Yea I wasn't sure what the best answer to this is yet. Currently we create a 
`SourceLocation` (which is just a compact <`FileID`, `offset`> pair, where 
`offset` is the position into the file) using `translateLineCol`, which will 
mmap the file if we haven't done so yet, and then calculate the offset based on 
the line/column info.

> "there is a file here, come back to me if you need it"

>From my limited understanding of these APIs, I don't think there's currently 
>such a customization point. LLDB would have to somehow store that column/line 
>info somewhere until Clang asks for it. We could maybe stuff 
>`FileID`+`column`+`line` into the `SourceLocation`, and steal bit as an 
>indicator that this is a "lazy source location"? I'd have to investigate this 
>a bit more.

But I guess we'd have to decide whether opening the source files is an 
unacceptable increase in the memory footprint for the common debugging 
use-case. I can collect some memory usage numbers when debugging clang/lldb as 
one data-point

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

Reply via email to