Hi Ming,
On Wed, Jul 9, 2025 at 8:10 PM Ming Wang <wangming01(a)loongson.cn> wrote:
Gentle ping on this patch. Any comments or feedback?
Sorry for the late reply. I have seen your patch, but I'm not
confident about whether it will have regressions on other archs.
Please wait for some time before I do a regression test against it.
Thanks,
Tao Liu
Thanks.
在 2025/6/9 11:03, Ming Wang 写道:
> The crash tool failed to initialize on LoongArch64 when using
> GDB 16.2 (and likely other recent GDB versions that have enhanced
> LoongArch support) due to the error:
> "fatal error: buffer size is not enough to fit register value".
>
> This occurs in supply_registers() because GDB now correctly
> reports the size of LoongArch LASX (256-bit) vector registers
> (xr0-xr31) as 32 bytes. The `regval` buffer in `crash_target.c`
> was previously fixed at 16 bytes.
>
> This patch increases the `regval` buffer size to 32 bytes to
> accommodate the largest LoongArch registers reported by GDB.
> This allows crash to initialize successfully.
>
> Signed-off-by: Ming Wang <wangming01(a)loongson.cn>
> ---
> crash_target.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/crash_target.c b/crash_target.c
> index 5966b7b..d93d58c 100644
> --- a/crash_target.c
> +++ b/crash_target.c
> @@ -71,7 +71,7 @@ public:
>
> static void supply_registers(struct regcache *regcache, int regno)
> {
> - gdb_byte regval[16];
> + gdb_byte regval[32];
> struct gdbarch *arch = regcache->arch ();
> const char *regname = gdbarch_register_name(arch, regno);
> int regsize = register_size(arch, regno);