This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] xtensa: Properly strdup string when building reggroup
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: Stafford Horne <shorne at gmail dot com>
- Cc: GDB patches <gdb-patches at sourceware dot org>
- Date: Mon, 12 Jun 2017 09:22:05 +0100
- Subject: Re: [PATCH] xtensa: Properly strdup string when building reggroup
- Authentication-results: sourceware.org; auth=none
- References: <20170610133422.19913-1-shorne@gmail.com>
Stafford Horne <shorne@gmail.com> writes:
Patch is good to me, a nit,
> - xtensa_cp[i] = reggroup_new (cpname, USER_REGGROUP);
> + xtensa_cp[i] = reggroup_new (xstrdup(cpname), USER_REGGROUP);
"xstrdup (cpname)".
Before your patch is applied, GDB prints some garbage data,
(gdb) set architecture xtensa
The target architecture is assumed to be xtensa
(gdb) maintenance print reggroups
Group Type
all user
save internal
restore internal
system user
vector user
general user
float user
ar user
user user
vectra user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
P�^\U user
with your patch applied, the output looks "right",
(gdb) maintenance print reggroups
Group Type
all user
save internal
restore internal
system user
vector user
general user
float user
ar user
user user
vectra user
cp0 user
cp1 user
cp2 user
cp3 user
cp4 user
cp5 user
cp6 user
cp7 user
cp8 user
cp9 user
cp: user
cp; user
cp< user
cp= user
cp> user
cp? user
This exposes another bug, IMO, here,
for (i = 0; i < XTENSA_MAX_COPROCESSOR; i++)
{
cpname[2] = '0' + i;
xtensa_cp[i] = reggroup_new (cpname, USER_REGGROUP);
}
and XTENSA_MAX_COPROCESSOR is 0x10, so we can see "cp:", "cp;", which
looks odd.
--
Yao (齐尧)