[llvm] [LoongArch] Add debug location for register reload (PR #122057)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 8 00:54:38 PST 2025


wangleiat wrote:

> Here is another similar issue:
> 
> ```
> $ gdb ./t
> GNU gdb (GDB) 15.1
> ...
> (gdb) b *main
> Breakpoint 1 at 0x760: file t.c, line 2.
> (gdb) r
> ...
> Breakpoint 1, main (argc=<error reading variable: Cannot access memory at address 0xffffffffffffffe8>, 
>     argv=<error reading variable: Cannot access memory at address 0xffffffffffffffe0>) at t.c:2
> 2	int main(int argc, char **argv) {
> ```

This is correct. `argc` and `argv` are calculated through `fp`, where `argc = $r22 - 24` and `argv = r22 - 32`. When breaking at `*main`, `$r22 = 0`, and at this point, argc and argv are inaccessible.

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


More information about the llvm-commits mailing list