gdb: LoongArch: Silence warning about core file of lsx and lasx
In loongarch_iterate_over_regset_sections(), the second and third arguments
of the iterate_over_regset_sections_cb callback function should be the regset
size which is regsize * regnum. Otherwise when execute:
make check-gdb TESTS="gdb.base/corefile.exp"
there exists the following failed log:
(gdb) core-file /home/fedora/community/gdb/build/gdb/testsuite/outputs/gdb.base/corefile/corefile.core
[New LWP 531099]
warning: Unexpected size of section `.reg-loongarch-lsx/531099' in core file.
warning: Unexpected size of section `.reg-loongarch-lasx/531099' in core file.
Core was generated by `/home/fedora/community/gdb/build/gdb/testsuite/outputs/gdb.base/corefile/corefile'.
Program terminated with signal SIGABRT, Aborted.
warning: Unexpected size of section `.reg-loongarch-lsx/531099' in core file.
warning: Unexpected size of section `.reg-loongarch-lasx/531099' in core file.
#0 0x00007ffff3081600 in __pthread_kill_implementation.constprop.0 () from /lib64/libc.so.6
(gdb) FAIL: gdb.base/corefile.exp: core-file warning-free
Signed-off-by: Hui Li <lihui@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c
index 1c7a7cf..db6371e 100644
--- a/gdb/loongarch-linux-tdep.c
+++ b/gdb/loongarch-linux-tdep.c
@@ -498,7 +498,9 @@
int fpsize = fprsize * LOONGARCH_LINUX_NUM_FPREGSET +
fccsize * LOONGARCH_LINUX_NUM_FCC + fcsrsize;
int lsxrsize = register_size (gdbarch, LOONGARCH_FIRST_LSX_REGNUM);
+ int lsxsize = lsxrsize * LOONGARCH_LINUX_NUM_LSXREGSET;
int lasxrsize = register_size (gdbarch, LOONGARCH_FIRST_LASX_REGNUM);
+ int lasxsize = lasxrsize * LOONGARCH_LINUX_NUM_LASXREGSET;
int scrsize = register_size (gdbarch, LOONGARCH_FIRST_SCR_REGNUM);
int eflagssize = register_size (gdbarch, LOONGARCH_EFLAGS_REGNUM);
int ftopsize = register_size (gdbarch, LOONGARCH_FTOP_REGNUM);
@@ -507,9 +509,9 @@
cb (".reg", LOONGARCH_LINUX_NUM_GREGSET * gprsize,
LOONGARCH_LINUX_NUM_GREGSET * gprsize, &loongarch_gregset, nullptr, cb_data);
cb (".reg2", fpsize, fpsize, &loongarch_fpregset, nullptr, cb_data);
- cb (".reg-loongarch-lsx", lsxrsize, lsxrsize,
+ cb (".reg-loongarch-lsx", lsxsize, lsxsize,
&loongarch_lsxregset, nullptr, cb_data);
- cb (".reg-loongarch-lasx", lasxrsize, lasxrsize,
+ cb (".reg-loongarch-lasx", lasxsize, lasxsize,
&loongarch_lasxregset, nullptr, cb_data);
cb (".reg-loongarch-lbt", lbtsize, lbtsize,
&loongarch_lbtregset, nullptr, cb_data);