jasonmolenda added inline comments.
================ Comment at: lldb/test/API/functionalities/multiple-slides/TestMultipleSlides.py:34 + + # View the first element of `first` and `second` with + # a load address . ---------------- DavidSpickett wrote: > Is it worth checking here that the value of `&first` has actually changed, or > is sliding in general tested elsewhere? Good idea, that's not a bug we're seeing here (that's file address -> load address translation, if anything) but I mention that this test case doesn't work when there's debug info on Darwin; one way you can see the problem with debug info is that the address of these variables is not shown as changing, when the slide is applied. ================ Comment at: lldb/test/API/functionalities/multiple-slides/main.c:2 +int first[2048] = { 5 }; +int second[2048] = { 6 }; +int main() { ---------------- DavidSpickett wrote: > 2048 is a random number or are you fitting into some page size or just a > distance big enough to prevent some accidentally correct but wrong behaviour > by lldb? The original bug report was disassembling functions, and it was easy to see that the load address -> file address calculation was incorrect. For the test case I laid out the DATA and slides so I could repo this, but didn't show my work for how I got there. If we have a file address for DATA of 0x104000, `first` is at fileaddr 0x104000 `second` is at fileaddr 0x00104800. We add a slide of 1990 (0x7c6), so now DATA is at load address 0x1047c6. When I print `first`, that turns into a load address of 0x1047c6, translates to a DATA + 0 Address object, and when I print `second`, that turns into a load address of 0x00104fc6 which translates to DATA + 0x2048. Then we slide to offset 4, so now DATA is at load address 0x104004. But we still have the old 0x1047c6 load address in the table. `first` is load address 0x104004 matches the entry for 0x104004, so it goes to DATA + 4. `second` is load address 0x1047cc. This matches the old 0x1047c6 entry in the addr->sect table, so it translates to DATA + 6, and now we're indexing into the middle of the `first` array. I'll be honest, I didn't do the math on this when I made the test case, I just guessed at some numbers that would probably overlap in the right way, so it wasn't completely clear to me either, haha. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D130534/new/ https://reviews.llvm.org/D130534 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits