[Lldb-commits] [lldb] Fix lldb-dap non-leaf frame source resolution issue (PR #165944)

Ebuka Ezike via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 6 06:33:21 PST 2025


da-viper wrote:

> @da-viper, thanks for sharing the idea! I will add the test.
> 
> My only concern is that the source line after the `bar()` call may not be the instruction after the call instruction, for example, compiler may emit extra code after call instruction.

I do not think in this test case the compiler will emit any code after the `bar()` call instruction that does not have a line entry. 

The tests are run without optimisation by default. the `#line` directive forces all lines after it to be relative for example

```cpp
bool foo() {                                 // line 1
  bar();                                     // line 2
#line 0 "test.cpp"                     
  return true;                               // line 0
}                                            // line 1
                                             // line 2
int main () {                                // line 3
   return 0;                                 // line 4
}                                            // line 5
```
that's why I forward declared `foo` and `foo's` definition is the last function in the test case. 

>  So this test depends on the assumption that there is no extra code between call instruction and next source line. 

No, it makes sure that any instruction after the `bar()` call does not have a valid line entry. That way we can test the frames in the stack trace will have a valid source line entry. 

https://github.com/llvm/llvm-project/pull/165944


More information about the lldb-commits mailing list