qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 1bbf2d: tests/docker: Install tools to cross-


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 1bbf2d: tests/docker: Install tools to cross-debug and bui...
Date: Wed, 18 Mar 2020 15:15:13 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 1bbf2d010fc0e5f0a9c5e1967368c44bc64e086a
      
https://github.com/qemu/qemu/commit/1bbf2d010fc0e5f0a9c5e1967368c44bc64e086a
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/docker/dockerfiles/debian10.docker
    M tests/docker/dockerfiles/debian9.docker

  Log Message:
  -----------
  tests/docker: Install tools to cross-debug and build Linux kernels

We often run Linux kernels to test QEMU. We sometimes need
to build them manually to use non-default features. We only
miss the tiny 'bc' tool.

The ncurses library is helpful to run 'make menuconfig'.

Finally, gdb-multiarch allow us to debug a TCG guest when its
architecture is different than the host.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: 72e3c1dd573a64eb730175ddccf39fb40d39c986
      
https://github.com/qemu/qemu/commit/72e3c1dd573a64eb730175ddccf39fb40d39c986
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/docker/dockerfiles/debian-amd64.docker

  Log Message:
  -----------
  tests/docker: Update VirGL git repository URL

freedesktop.org is moving to a GitLab instance,
use the new url.

- https://www.fooishbar.org/blog/gitlab-fdo-introduction/
- https://gitlab.freedesktop.org/freedesktop/freedesktop/-/wikis/home

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: 5b9d40fafef1d7c9e8ab23939cb309228f32b652
      
https://github.com/qemu/qemu/commit/5b9d40fafef1d7c9e8ab23939cb309228f32b652
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/docker/dockerfiles/debian-amd64.docker

  Log Message:
  -----------
  tests/docker: Remove obsolete VirGL --with-glx configure option

The GLX configure option has been removed in 71c75f201d [*].
We missed that when updating to v0.7.0 in commit fab3220f97.

This silents:

  configure: creating ./config.status
  config.status: creating virglrenderer.pc
  ...
  configure: WARNING: unrecognized options: --with-glx

[*] https://gitlab.freedesktop.org/virgl/virglrenderer/commit/71c75f201d

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: d2763944e24e04bf8c6cf9fcd3d11ae6da3ca113
      
https://github.com/qemu/qemu/commit/d2763944e24e04bf8c6cf9fcd3d11ae6da3ca113
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/docker/dockerfiles/debian-amd64.docker

  Log Message:
  -----------
  tests/docker: Update VirGL to v0.8.0

Building the qemu:debian-amd64 fails when building VirGL:

  make[2]: Entering directory '/usr/src/virglrenderer/src/gallium/auxiliary'
    CC       cso_cache/cso_cache.lo
    CC       cso_cache/cso_hash.lo
    CC       os/os_misc.lo
    CC       util/u_debug.lo
    CC       util/u_debug_describe.lo
    CC       util/u_format.lo
    GEN      util/u_format_table.c
  Traceback (most recent call last):
    File "./util/u_format_table.py", line 168, in <module>
      main()
    File "./util/u_format_table.py", line 164, in main
      write_format_table(formats)
    File "./util/u_format_table.py", line 132, in write_format_table
      print("   %s,\t/* is_array */" % (bool_map(format.is_array()),))
    File "/usr/src/virglrenderer/src/gallium/auxiliary/util/u_format_parse.py", 
line 164, in is_array
      return self.array_element() != None
    File "/usr/src/virglrenderer/src/gallium/auxiliary/util/u_format_parse.py", 
line 73, in __eq__
      return self.type == other.type and self.norm == other.norm and self.pure 
== other.pure and self.size == other.size
  AttributeError: 'NoneType' object has no attribute 'type'
  make[2]: Leaving directory '/usr/src/virglrenderer/src/gallium/auxiliary'
  make[2]: *** [Makefile:906: util/u_format_table.c] Error 1
  make[1]: *** [Makefile:631: install-recursive] Error 1

VirGL commits a8962eda1..a613dcc82 fix this problem.
Update to VirGL 0.8.0 which contains them.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: 2dbd39c27d5dd1a3028a2f7ba8be8d7033176f53
      
https://github.com/qemu/qemu/commit/2dbd39c27d5dd1a3028a2f7ba8be8d7033176f53
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  travis.yml: Set G_MESSAGES_DEBUG do report GLib errors

Since commit f5852efa293 we can display GLib errors with the QEMU
error reporting API. Set it to the 'error' level, as this helps
understanding failures from QEMU calls to GLib on Travis-CI.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: 8d98c445dcc6e3880c14b4ae7fc842e302703638
      
https://github.com/qemu/qemu/commit/8d98c445dcc6e3880c14b4ae7fc842e302703638
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: make GDBState static and have common init function

Instead of allocating make this entirely static. We shall reduce the
size of the structure in later commits and dynamically allocate parts
of it. We introduce an init and reset helper function to keep all the
manipulation in one place.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Damien Hedde <address@hidden>

Message-Id: <address@hidden>


  Commit: a346af3e3525e761a7f28659a0fef3d6bc758f62
      
https://github.com/qemu/qemu/commit/a346af3e3525e761a7f28659a0fef3d6bc758f62
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: stop passing GDBState * around and use global

We only have one GDBState which should be allocated at the time we
process any commands. This will make further clean-up a bit easier.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Damien Hedde <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

Message-Id: <address@hidden>


  Commit: 308f9e88b28e75b1702112159d6894007372b355
      
https://github.com/qemu/qemu/commit/308f9e88b28e75b1702112159d6894007372b355
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: move str_buf to GDBState and use GString

Rather than having a static buffer replace str_buf with a GString
which we know can grow on demand. Convert the internal functions to
take a GString instead of a char * and length.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Damien Hedde <address@hidden>
Tested-by: Damien Hedde <address@hidden>
Message-Id: <address@hidden>


  Commit: 4a25f1b97ac1fad8dca3bee5f1d22fc8cb582b37
      
https://github.com/qemu/qemu/commit/4a25f1b97ac1fad8dca3bee5f1d22fc8cb582b37
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: move mem_buf to GDBState and use GByteArray

This is in preparation for further re-factoring of the register API
with the rest of the code. Theoretically the read register function
could overwrite the MAX_PACKET_LENGTH buffer although currently all
registers are well within the size range.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Damien Hedde <address@hidden>
Tested-by: Damien Hedde <address@hidden>

Message-Id: <address@hidden>


  Commit: 532cc1fb44823d2df55eebde2501e95cf83b4b9a
      
https://github.com/qemu/qemu/commit/532cc1fb44823d2df55eebde2501e95cf83b4b9a
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M include/exec/gdbstub.h

  Log Message:
  -----------
  gdbstub: add helper for 128 bit registers

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>


  Commit: 8b1ca58c3b0789a41c75d8626ba65a8c35e16b58
      
https://github.com/qemu/qemu/commit/8b1ca58c3b0789a41c75d8626ba65a8c35e16b58
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: use gdb_get_reg helpers

This is cleaner than poking memory directly and will make later
clean-ups easier.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>

Message-Id: <address@hidden>


  Commit: 462474d760cd94933ff7d5cba39de92fb0985c1a
      
https://github.com/qemu/qemu/commit/462474d760cd94933ff7d5cba39de92fb0985c1a
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/m68k/helper.c

  Log Message:
  -----------
  target/m68k: use gdb_get_reg helpers

This is cleaner than poking memory directly and will make later
clean-ups easier.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: b7b8756a9cd0cd63488a9d9fc9aee5400574c30b
      
https://github.com/qemu/qemu/commit/b7b8756a9cd0cd63488a9d9fc9aee5400574c30b
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/i386/gdbstub.c

  Log Message:
  -----------
  target/i386: use gdb_get_reg helpers

This is cleaner than poking memory directly and will make later
clean-ups easier.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: a010bdbe719c52c8959ca058000d7ac7d559abb8
      
https://github.com/qemu/qemu/commit/a010bdbe719c52c8959ca058000d7ac7d559abb8
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c
    M hw/core/cpu.c
    M include/exec/gdbstub.h
    M include/hw/core/cpu.h
    M target/alpha/cpu.h
    M target/alpha/gdbstub.c
    M target/arm/cpu.h
    M target/arm/gdbstub.c
    M target/arm/gdbstub64.c
    M target/arm/helper.c
    M target/cris/cpu.h
    M target/cris/gdbstub.c
    M target/hppa/cpu.h
    M target/hppa/gdbstub.c
    M target/i386/cpu.h
    M target/i386/gdbstub.c
    M target/lm32/cpu.h
    M target/lm32/gdbstub.c
    M target/m68k/cpu.h
    M target/m68k/gdbstub.c
    M target/m68k/helper.c
    M target/microblaze/cpu.h
    M target/microblaze/gdbstub.c
    M target/mips/gdbstub.c
    M target/mips/internal.h
    M target/nios2/cpu.c
    M target/openrisc/cpu.h
    M target/openrisc/gdbstub.c
    M target/ppc/cpu.h
    M target/ppc/gdbstub.c
    M target/ppc/translate_init.inc.c
    M target/riscv/cpu.h
    M target/riscv/gdbstub.c
    M target/s390x/gdbstub.c
    M target/s390x/internal.h
    M target/sh4/cpu.h
    M target/sh4/gdbstub.c
    M target/sparc/cpu.h
    M target/sparc/gdbstub.c
    M target/xtensa/cpu.h
    M target/xtensa/gdbstub.c

  Log Message:
  -----------
  gdbstub: extend GByteArray to read register helpers

Instead of passing a pointer to memory now just extend the GByteArray
to all the read register helpers. They can then safely append their
data through the normal way. We don't bother with this abstraction for
write registers as we have already ensured the buffer being copied
from is the correct size.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Acked-by: David Gibson <address@hidden>
Reviewed-by: Damien Hedde <address@hidden>

Message-Id: <address@hidden>


  Commit: 448d4d146b788898d56131d21001542f39681c9b
      
https://github.com/qemu/qemu/commit/448d4d146b788898d56131d21001542f39681c9b
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/gdbstub.c
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: prepare for multiple dynamic XMLs

We will want to generate similar dynamic XML for gdbstub support of
SVE registers (the upstream doesn't use XML). To that end lightly
rename a few things to make the distinction.

Signed-off-by: Alex Bennée <address@hidden>
Acked-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>


  Commit: 32d6e32afa694ebedf2c5f3bf6f013c5debb5959
      
https://github.com/qemu/qemu/commit/32d6e32afa694ebedf2c5f3bf6f013c5debb5959
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/gdbstub.c
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: explicitly encode regnum in our XML

This is described as optional but I'm not convinced of the numbering
when multiple target fragments are sent.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>

Message-Id: <address@hidden>


  Commit: 7b6a2198e71794c851f39ac7a92d39692c786820
      
https://github.com/qemu/qemu/commit/7b6a2198e71794c851f39ac7a92d39692c786820
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/cpu.c

  Log Message:
  -----------
  target/arm: default SVE length to 64 bytes for linux-user

The Linux kernel chooses the default of 64 bytes for SVE registers on
the basis that it is the largest size on known hardware that won't
grow the signal frame. We still honour the sve-max-vq property and
userspace can expand the number of lanes by calling PR_SVE_SET_VL.

This should not make any difference to SVE enabled software as the SVE
is of course vector length agnostic.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>

Message-Id: <address@hidden>


  Commit: d12379c5980d53e69468db0965d8915064727b85
      
https://github.com/qemu/qemu/commit/d12379c5980d53e69468db0965d8915064727b85
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/gdbstub.c
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: generate xml description of our SVE registers

We also expose a the helpers to read/write the the registers.

Signed-off-by: Alex Bennée <address@hidden>
Acked-by: Richard Henderson <address@hidden>

Message-Id: <address@hidden>


  Commit: 976b99b6ec2e15cd7c36d72fdb9b60c37c5494f8
      
https://github.com/qemu/qemu/commit/976b99b6ec2e15cd7c36d72fdb9b60c37c5494f8
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: don't bother with id_aa64pfr0_read for USER_ONLY

For system emulation we need to check the state of the GIC before we
report the value. However this isn't relevant to exporting of the
value to linux-user and indeed breaks the exported value as set by
modify_arm_cp_regs.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: fe185734d0164234b1af1c9fcaaf39aefb089d15
      
https://github.com/qemu/qemu/commit/fe185734d0164234b1af1c9fcaaf39aefb089d15
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/tcg/aarch64/Makefile.target
    A tests/tcg/aarch64/sysregs.c

  Log Message:
  -----------
  tests/tcg/aarch64: userspace system register test

This tests a bunch of registers that the kernel allows userspace to
read including the CPUID registers. We need a SVE aware compiler as we
are testing the id_aa64zfr0_el1 register in the set.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>


  Commit: f48e590aafd4bcc2d63c93c8b7cc45ea671616d8
      
https://github.com/qemu/qemu/commit/f48e590aafd4bcc2d63c93c8b7cc45ea671616d8
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: allow user to specify what gdb to use

This is useful, especially when testing relatively new gdbstub
features that might not be in distro packages yet.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>


  Commit: db2ea0dd1b73c8cfcd53de94bfcec37726587199
      
https://github.com/qemu/qemu/commit/db2ea0dd1b73c8cfcd53de94bfcec37726587199
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    A tests/guest-debug/run-test.py

  Log Message:
  -----------
  tests/guest-debug: add a simple test runner

The test runners job is to start QEMU with guest debug enabled and
then spawn a gdb process running a test script that exercises the
functionality it wants to test.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: cf58773f1c233e3bb43abc4b4b0aaad60ce9a6be
      
https://github.com/qemu/qemu/commit/cf58773f1c233e3bb43abc4b4b0aaad60ce9a6be
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/.gitignore
    M tests/tcg/aarch64/Makefile.target
    A tests/tcg/aarch64/gdbstub/test-sve.py

  Log Message:
  -----------
  tests/tcg/aarch64: add a gdbstub testcase for SVE registers

A very simple test case which sets and reads SVE registers while
running a test case. We don't really need to compile a SVE binary for
this case but we will later so keep it simple for now.

Signed-off-by: Alex Bennée <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: 2b6d6371a94cab1c351fed5a0bc323eb48829cfd
      
https://github.com/qemu/qemu/commit/2b6d6371a94cab1c351fed5a0bc323eb48829cfd
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/tcg/aarch64/Makefile.target
    A tests/tcg/aarch64/sve-ioctls.c

  Log Message:
  -----------
  tests/tcg/aarch64: add SVE iotcl test

This is a fairly bare-bones test of setting the various vector sizes
for SVE which will only fail if the PR_SVE_SET_VL can't reduce the
user-space vector length by powers of 2.

However we will also be able to use it in a future test which
exercises the GDB stub.

Signed-off-by: Alex Bennée <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: f4a23e1797dcfbcec9f6e3e7a64865ac07aabf06
      
https://github.com/qemu/qemu/commit/f4a23e1797dcfbcec9f6e3e7a64865ac07aabf06
  Author: Alex Bennée <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M tests/tcg/aarch64/Makefile.target
    A tests/tcg/aarch64/gdbstub/test-sve-ioctl.py

  Log Message:
  -----------
  tests/tcg/aarch64: add test-sve-ioctl guest-debug test

This test exercises the gdbstub while runing the sve-iotcl test. I
haven't plubmed it into make system as we need a way of verifying if
gdb has the right support for SVE.

Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>


  Commit: d116e813a5aa6eaadf46fea39ea0395c060b3721
      
https://github.com/qemu/qemu/commit/d116e813a5aa6eaadf46fea39ea0395c060b3721
  Author: Damien Hedde <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: change GDBState.last_packet to GByteArray

Remove the packet size upper limit by using a GByteArray
instead of a statically allocated array for last_packet.
Thus we can now send big packets.

Also remove the last_packet_len field and use last_packet->len
instead.

Signed-off-by: Damien Hedde <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>


  Commit: d86b4672f2ee4775ce5711c5626e6311efd788c8
      
https://github.com/qemu/qemu/commit/d86b4672f2ee4775ce5711c5626e6311efd788c8
  Author: Damien Hedde <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: do not split gdb_monitor_write payload

Since we can now send packets of arbitrary length:
simplify gdb_monitor_write() and send the whole payload
in one packet.

Suggested-by: Luc Michel <address@hidden>
Signed-off-by: Damien Hedde <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>


  Commit: 3bc2609d478779be600fd66744eb4e3730ec5e33
      
https://github.com/qemu/qemu/commit/3bc2609d478779be600fd66744eb4e3730ec5e33
  Author: Changbin Du <address@hidden>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: Fix single-step issue by confirming 'vContSupported+' feature to gdb

Recently when debugging an arm32 system on qemu, I found sometimes the
single-step command (stepi) is not working. This can be reproduced by
below steps:
 1) start qemu-system-arm -s -S .. and wait for gdb connection.
 2) start gdb and connect to qemu. In my case, gdb gets a wrong value
    (0x60) for PC, which is an another bug.
 3) After connected, type 'stepi' and expect it will stop at next ins.

But, it has never stopped. This because:
 1) We doesn't report ‘vContSupported’ feature to gdb explicitly and gdb
    think we do not support it. In this case, gdb use a software breakpoint
    to emulate single-step.
 2) Since gdb gets a wrong initial value of PC, then gdb inserts a
    breakpoint to wrong place (PC+4).

Not only for the arm target, Philippe has also encountered this on MIPS.
Probably gdb has different assumption for different architectures.

Since we do support ‘vContSupported’ query command, so let's tell gdb that
we support it.

Before this change, gdb send below 'Z0' packet to implement single-step:
gdb_handle_packet: Z0,4,4

After this change, gdb send "vCont;s.." which is expected:
gdb_handle_packet: vCont?
put_packet: vCont;c;C;s;S
gdb_handle_packet: vCont;s:p1.1;c:p1.-1

Signed-off-by: Changbin Du <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
[AJB: fix for static gdbstub]
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Luc Michel <address@hidden>
Message-Id: <address@hidden>


  Commit: 9214813489eb29de71d37f57e1bcabf5facecc8f
      
https://github.com/qemu/qemu/commit/9214813489eb29de71d37f57e1bcabf5facecc8f
  Author: Peter Maydell <address@hidden>
  Date:   2020-03-18 (Wed, 18 Mar 2020)

  Changed paths:
    M .travis.yml
    M configure
    M gdbstub.c
    M hw/core/cpu.c
    M include/exec/gdbstub.h
    M include/hw/core/cpu.h
    M target/alpha/cpu.h
    M target/alpha/gdbstub.c
    M target/arm/cpu.c
    M target/arm/cpu.h
    M target/arm/gdbstub.c
    M target/arm/gdbstub64.c
    M target/arm/helper.c
    M target/cris/cpu.h
    M target/cris/gdbstub.c
    M target/hppa/cpu.h
    M target/hppa/gdbstub.c
    M target/i386/cpu.h
    M target/i386/gdbstub.c
    M target/lm32/cpu.h
    M target/lm32/gdbstub.c
    M target/m68k/cpu.h
    M target/m68k/gdbstub.c
    M target/m68k/helper.c
    M target/microblaze/cpu.h
    M target/microblaze/gdbstub.c
    M target/mips/gdbstub.c
    M target/mips/internal.h
    M target/nios2/cpu.c
    M target/openrisc/cpu.h
    M target/openrisc/gdbstub.c
    M target/ppc/cpu.h
    M target/ppc/gdbstub.c
    M target/ppc/translate_init.inc.c
    M target/riscv/cpu.h
    M target/riscv/gdbstub.c
    M target/s390x/gdbstub.c
    M target/s390x/internal.h
    M target/sh4/cpu.h
    M target/sh4/gdbstub.c
    M target/sparc/cpu.h
    M target/sparc/gdbstub.c
    M target/xtensa/cpu.h
    M target/xtensa/gdbstub.c
    M tests/.gitignore
    M tests/docker/dockerfiles/debian-amd64.docker
    M tests/docker/dockerfiles/debian10.docker
    M tests/docker/dockerfiles/debian9.docker
    A tests/guest-debug/run-test.py
    M tests/tcg/aarch64/Makefile.target
    A tests/tcg/aarch64/gdbstub/test-sve-ioctl.py
    A tests/tcg/aarch64/gdbstub/test-sve.py
    A tests/tcg/aarch64/sve-ioctls.c
    A tests/tcg/aarch64/sysregs.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/stsquad/tags/pull-testing-and-gdbstub-170320-1' into staging

Testing and gdbstub updates:

  - docker updates for VirGL
  - re-factor gdbstub for static GDBState
  - re-factor gdbstub for dynamic arrays
  - add SVE support to arm gdbstub
  - add some guest debug tests to check-tcg
  - add aarch64 userspace register tests
  - remove packet size limit to gdbstub
  - simplify gdbstub monitor code
  - report vContSupported in gdbstub to use proper single-step

# gpg: Signature made Tue 17 Mar 2020 17:47:46 GMT
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <address@hidden>" 
[full]
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* remotes/stsquad/tags/pull-testing-and-gdbstub-170320-1: (28 commits)
  gdbstub: Fix single-step issue by confirming 'vContSupported+' feature to gdb
  gdbstub: do not split gdb_monitor_write payload
  gdbstub: change GDBState.last_packet to GByteArray
  tests/tcg/aarch64: add test-sve-ioctl guest-debug test
  tests/tcg/aarch64: add SVE iotcl test
  tests/tcg/aarch64: add a gdbstub testcase for SVE registers
  tests/guest-debug: add a simple test runner
  configure: allow user to specify what gdb to use
  tests/tcg/aarch64: userspace system register test
  target/arm: don't bother with id_aa64pfr0_read for USER_ONLY
  target/arm: generate xml description of our SVE registers
  target/arm: default SVE length to 64 bytes for linux-user
  target/arm: explicitly encode regnum in our XML
  target/arm: prepare for multiple dynamic XMLs
  gdbstub: extend GByteArray to read register helpers
  target/i386: use gdb_get_reg helpers
  target/m68k: use gdb_get_reg helpers
  target/arm: use gdb_get_reg helpers
  gdbstub: add helper for 128 bit registers
  gdbstub: move mem_buf to GDBState and use GByteArray
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/cf4b64406c0e...9214813489eb



reply via email to

[Prev in Thread] Current Thread [Next in Thread]