* Marc-André Lureau ([email protected]) wrote:
> Hi
> 
> On Fri, Oct 23, 2026 at 3:35 AM Dr. David Alan Gilbert <[email protected]> 
> wrote:
> >
> > * Marc-André Lureau ([email protected]) wrote:
> > > The to be deprecated MonitorDef provided a synthetic $pc alias on
> > > x86 (which begin as an $eip alias). Preserving it requires x86-specific
> > > semantics (CPUClass::get_pc() omits the historical truncation).
> > > Use $eip or $rip instead, adding $cs.base as required.
> > >
> > > It was never a documented feature, HMP is not a stable API, x86-only,
> > > and the replacement ($rip/$eip + $cs.base) is arguably more correct.
> > > Nobody asked for a deprecation window on ML either.
> > >
> > > Signed-off-by: Marc-André Lureau <[email protected]>
> >
> > <snip>
> >
> > > diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
> > > index a523dbb446ce..b3f8fd58612d 100644
> > > --- a/tests/qtest/test-hmp.c
> > > +++ b/tests/qtest/test-hmp.c
> > > @@ -58,7 +58,6 @@ static const char *hmp_cmds[] = {
> > >      "object_del mem1",
> > >      "one-insn-per-tb on",
> > >      "pmemsave 0 4096 \"/dev/null\"",
> > > -    "p $pc + 8",
> >
> > That leaves us with no test of the 'p' command, and no test of reading
> > a register.
> > Given how much you're changing accessing the registers you
> > should still have a basic test by the end.
> 
> The existing test doesn't really do much though, it just checks we
> don't crash basically. I can try addressing this as a followup
> 
> >
> > How does this test work on S390 where 'info registers' shows
> > NIP but 'p $pc' works but 'p $nip' doesn't?
> 
> I assume you are talking about gdb, since $pc doesn't work with HMP-S390.

Oh! It was that test I was worried about, so that 'p $pc + 8' fails
on s390 - with an 'unknown register';  so yes, removing the x86 one doesn't
make any difference then.

> > I assume gdb also has some concept of a 'pc' at it's end?
> 
> GDB has extra synthetic pseudo-registers. We have a bunch in QEMU (and
> this series add more). We can add extra as necessary. But $pc for x86
> is currently ill-defined, so we decided to drop it earlier.

OK, it was just that loss of the test for reading $pc which worried me;
hmm it would be great if we could find a way to add a test back in the future
for register reading.
Given that it already silently fails on s390, you could actually leave
that test line in and when run on any non-(x86, s390) it would test the
reading still.

Dave

> > Dave
> >
> >
> > >      "qom-list /",
> > >      "qom-set /machine initrd test",
> > >      "qom-get /machine initrd",
> > >
> > > --
> > > 2.56.0.116.g6de20f6092dc
> > >
> > --
> >  -----Open up your eyes, open up your mind, open up your code -------
> > / Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \
> > \        dave @ treblig.org |                               | In Hex /
> >  \ _________________________|_____ http://www.treblig.org   |_______/
> >
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

Reply via email to