- Jan 08, 2020
-
-
Philippe Mathieu-Daudé authored
The Chardev events are listed in the QEMUChrEvent enum. By using the enum in the IOEventHandler typedef we: - make the IOEventHandler type more explicit (this handler process out-of-band information, while the IOReadHandler is in-band), - help static code analyzers. This patch was produced with the following spatch script: @match@ expression backend, opaque, context, set_open; identifier fd_can_read, fd_read, fd_event, be_change; @@ qemu_chr_fe_set_handlers(backend, fd_can_read, fd_read, fd_event, be_change, opaque, context, set_open); @depends on match@ identifier opaque, event; identifier match.fd_event; @@ static -void fd_event(void *opaque, int event) +void fd_event(void *opaque, QEMUChrEvent event) { ... } Then the typedef was modified manually in include/chardev/char-fe.h. Signed-off-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by:
Corey Minyard <cminyard@mvista.com> Acked-by:
Cornelia Huck <cohuck@redhat.com> Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20191218172009.8868-15-philmd@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Aug 28, 2019
-
-
Sandra Loosemore authored
Handling of the 'F' packet has been broken since commit 4b20fab1, which converted it to use the new packet parsing infrastructure. Per the GDB RSP specification https://sourceware.org/gdb/current/onlinedocs/gdb/The-F-Reply-Packet.html the second parameter may be omitted, but the rewritten implementation was failing to recognize this case. The result was that QEMU was repeatedly resending the fileio request and ignoring GDB's replies of successful completion. This patch restores the behavior of the previous code in allowing the errno parameter to be omitted and passing 0 to the callback in that case. Signed-off-by:
Sandra Loosemore <sandra@codesourcery.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Message-Id: <20190827223317.8614-1-sandra@codesourcery.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Ramiro Polla authored
Since the '!' packet is not handled by the new infrastructure, gdb_handle_packet() would call run_cmd_parser() with a NULL cmd_parser value, which would lead to an unsupported packet ("$#00") being sent, which could confuse the gdb client. This also has a side-effect of speeding up the initial connection with gdb. Fixes: 3e2c1261 ("gdbstub: Implement deatch (D pkt) with new infra") Signed-off-by:
Ramiro Polla <ramiro.polla@gmail.com> Message-Id: <20190805190901.14072-1-ramiro.polla@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
- Aug 16, 2019
-
-
Markus Armbruster authored
sysemu/sysemu.h is a rather unfocused dumping ground for stuff related to the system-emulator. Evidence: * It's included widely: in my "build everything" tree, changing sysemu/sysemu.h still triggers a recompile of some 1100 out of 6600 objects (not counting tests and objects that don't depend on qemu/osdep.h, down from 5400 due to the previous two commits). * It pulls in more than a dozen additional headers. Split stuff related to run state management into its own header sysemu/runstate.h. Touching sysemu/sysemu.h now recompiles some 850 objects. qemu/uuid.h also drops from 1100 to 850, and qapi/qapi-types-run-state.h from 4400 to 4200. Touching new sysemu/runstate.h recompiles some 500 objects. Since I'm touching MAINTAINERS to add sysemu/runstate.h anyway, also add qemu/main-loop.h. Suggested-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Markus Armbruster <armbru@redhat.com> Message-Id: <20190812052359.30071-30-armbru@redhat.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> [Unbreak OS-X build]
-
- Jul 10, 2019
-
-
Alex Bennée authored
The refactoring of handle_set_reg missed the fact we previously had responded with an empty packet when we were not using XML based protocols. This broke the fallback behaviour for architectures that don't have registers defined in QEMU's gdb-xml directory. Revert to the previous behaviour and clean up the commentary for what is going on. Fixes: 62b3320b Signed-off-by:
Alex Bennée <alex.bennee@linaro.org> Tested-by:
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Cc: Jon Doron <arilou@gmail.com>
-
Alex Bennée authored
Add a link to the remote protocol spec and an SPDX tag. Signed-off-by:
Alex Bennée <alex.bennee@linaro.org> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by:
Philippe Mathieu-Daudé <philmd@redhat.com>
-
- Jul 05, 2019
-
-
Like Xu authored
Basically, the context could get the MachineState reference via call chains or unrecommended qdev_get_machine() in !CONFIG_USER_ONLY mode. A local variable of the same name would be introduced in the declaration phase out of less effort OR replace it on the spot if it's only used once in the context. No semantic changes. Signed-off-by:
Like Xu <like.xu@linux.intel.com> Reviewed-by:
Alistair Francis <alistair.francis@wdc.com> Message-Id: <20190518205428.90532-4-like.xu@linux.intel.com> Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com>
-
- Jun 18, 2019
-
-
Kevin Wolf authored
Most callers know which monitor type they want to have. Instead of calling monitor_init() with flags that can describe both types of monitors, make monitor_init_{hmp,qmp}() public interfaces that take specific bools instead of flags and call these functions directly. Signed-off-by:
Kevin Wolf <kwolf@redhat.com> Message-Id: <20190613153405.24769-15-kwolf@redhat.com> Reviewed-by:
Markus Armbruster <armbru@redhat.com> Signed-off-by:
Markus Armbruster <armbru@redhat.com>
-
- Jun 12, 2019
-
-
Jon Doron authored
Add a new query/set which changes the memory GDB sees to physical memory only. gdb> maint packet qqemu.PhyMemMode will reply the current phy_mem_mode state (1 for enabled, 0 for disabled) gdb> maint packet Qqemu.PhyMemMode:1 Will make GDB read/write only to physical memory, set to 0 to disable Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-21-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-20-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Note: The user-mode thread-id has been correctly reported since bd88c780 Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-19-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
The generic set/query packets contains implementation for varioius sub-commands which are required for GDB and also additional commands which are QEMU specific. To see which QEMU specific commands are available use the command gdb> maintenance packet qqemu.Supported Currently the only implemented QEMU specific command is the command that sets the single step behavior. gdb> maintenance packet qqemu.sstepbits Will display the MASK bits used to control the single stepping. gdb> maintenance packet qqemu.sstep Will display the current value of the mask used when single stepping. gdb> maintenance packet Qqemu.sstep:HEX_VALUE Will change the single step mask. Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-18-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-17-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-16-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-15-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-14-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-13-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-12-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-11-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-10-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-9-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-8-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-7-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-6-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-5-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-4-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-3-arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Jon Doron authored
Signed-off-by:
Jon Doron <arilou@gmail.com> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-2-arilou@gmail.com> Signed-off-by:
Alex Bennée <alex.bennee@linaro.org>
-
Markus Armbruster authored
No header includes qemu-common.h after this commit, as prescribed by qemu-common.h's file comment. Signed-off-by:
Markus Armbruster <armbru@redhat.com> Message-Id: <20190523143508.25387-5-armbru@redhat.com> [Rebased with conflicts resolved automatically, except for include/hw/arm/xlnx-zynqmp.h hw/arm/nrf51_soc.c hw/arm/msf2-soc.c block/qcow2-refcount.c block/qcow2-cluster.c block/qcow2-cache.c target/arm/cpu.h target/lm32/cpu.h target/m68k/cpu.h target/mips/cpu.h target/moxie/cpu.h target/nios2/cpu.h target/openrisc/cpu.h target/riscv/cpu.h target/tilegx/cpu.h target/tricore/cpu.h target/unicore32/cpu.h target/xtensa/cpu.h; bsd-user/main.c and net/tap-bsd.c fixed up]
-
Markus Armbruster authored
Signed-off-by:
Markus Armbruster <armbru@redhat.com> Message-Id: <20190523143508.25387-4-armbru@redhat.com> [Rebased with conflicts resolved automatically, except for hw/usb/dev-hub.c hw/misc/exynos4210_rng.c hw/misc/bcm2835_rng.c hw/misc/aspeed_scu.c hw/display/virtio-vga.c hw/arm/stm32f205_soc.c; ui/cocoa.m fixed up]
-
- Jun 11, 2019
-
-
Markus Armbruster authored
Signed-off-by:
Markus Armbruster <armbru@redhat.com> Message-Id: <20190523143508.25387-3-armbru@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org>
-
- May 28, 2019
-
-
Alex Bennée authored
In preparation for having some more common semihosting code let's excise the current config magic from vl.c into its own file. We shall later add more conditionals to the build configurations so we can avoid building this if we don't need it. Signed-off-by:
Alex Bennée <alex.bennee@linaro.org> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org>
-
- May 22, 2019
-
-
Markus Armbruster authored
gdb_read_byte() passes its @ch argument to isxdigit(). Undefined behavior when the value is negative. Two callers: * gdb_chr_receive() passes an uint8_t value. Safe. * gdb_handlesig() a char value. Unsafe. Not a security issue, because the characters come from the gdb client, which is trusted. The obvious fix would be casting @ch to unsigned char. But note that gdb_read_byte() already casts @ch to uint8_t in many places. Uses of @ch without such a cast: (1) Compare to a character constant with == or != (2) s->linesum += ch (3) Store ch or ch ^ 0x20 into s->line_buf[] (4) Check for invalid RLE count: ch < ' ' || ch == '#' || ch == '$' || ch > 126 (5) Pass to isxdigit() (6) Pass to fromhex() Change the parameter type from int to uint8_t, and drop the now redundant casts. Affects the above uses as follows: (1) No change: the character constants are all non-negative. (2) Effectively no change: we only ever use s->linesum & 0xff, and s->linesum is int. (3) No change: s->line_buf[] is char[]. (4) No change. (5) Avoid undefined behavior. (6) No change: only reached when isxdigit(ch) Signed-off-by:
Markus Armbruster <armbru@redhat.com> Message-Id: <20190514180311.16028-5-armbru@redhat.com>
-
Markus Armbruster authored
"Debugging with GDB / Appendix E GDB Remote Serial Protocol / Overview" specifies "The printable characters '#' and '$' or with a numeric value greater than 126 must not be used." gdb_read_byte() only rejects values < 32. This is wrong. Impact depends on the caller: * gdb_handlesig() passes a char. Incorrectly accepts '#', '$' and '\127'. * gdb_chr_receive() passes an uint8_t. Additionally accepts characters with the most-significant bit set. Correct the validity check to match the specification. Signed-off-by:
Markus Armbruster <armbru@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190514180311.16028-4-armbru@redhat.com>
-
- Mar 26, 2019
-
-
Luc Michel authored
The vCont packet accepts a series of actions, each being applied on a given thread ID. Giving no thread ID for an action is valid and means "all threads". This commit fixes vCont packets being incorrectly rejected when no thread ID was given for an action. In multiprocess mode, the GDB Remote Protocol specification is unclear on what "all threads" means. We choose to apply the action on all threads of all attached processes. This commit is based on the initial fix by Lucien Murray-Pitts. Fixes: e40e5204 Reported-by:
Lucien Murray-Pitts <lucienmp_antispam@yahoo.com> Reported-by:
Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by:
Luc Michel <luc.michel@greensocs.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Message-id: 20190325110452.6756-1-luc.michel@greensocs.com Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
- Feb 15, 2019
-
-
Sandra Loosemore authored
Per the GDB remote protocol documentation https://sourceware.org/gdb/current/onlinedocs/gdb/Packets.html#index-vKill-packet the debug stub is expected to send a reply to the 'vKill' packet. At least some versions of GDB crash if the gdb stub simply exits without sending a reply. This patch fixes QEMU's gdb stub to conform to the expected behavior. Note that QEMU's existing handling of the legacy 'k' packet is correct: in that case GDB does not expect a reply, and QEMU does not send one. Signed-off-by:
Sandra Loosemore <sandra@codesourcery.com> Message-id: 1550008033-26540-1-git-send-email-sandra@codesourcery.com Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
- Feb 13, 2019
-
-
Paolo Bonzini authored
This will be needed by vhost-user-test, when each test switches to its own GMainLoop and GMainContext. Otherwise, for a reconnecting socket the initial connection will happen on the default GMainContext, and no one will be listening on it. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20190202110834.24880-1-pbonzini@redhat.com> Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com>
-
- Feb 05, 2019
-
-
Max Filippov authored
With multiprocess extensions gdb uses 'vKill' packet instead of 'k' to kill the inferior. Handle 'vKill' the same way 'k' was handled in the presence of single process. Fixes: 7cf48f67 ("gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo") Cc: Luc Michel <luc.michel@greensocs.com> Signed-off-by:
Max Filippov <jcmvbkbc@gmail.com> Reviewed-by:
Luc Michel <luc.michel@greensocs.com> Reviewed-by:
KONRAD Frederic <frederic.konrad@adacore.com> Tested-by:
KONRAD Frederic <frederic.konrad@adacore.com> Message-id: 20190130192403.13754-1-jcmvbkbc@gmail.com Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
- Jan 29, 2019
-
-
Peter Maydell authored
Now we're keeping the cluster index in the CPUState, we don't need to jump through hoops in gdb_get_cpu_pid() to find the associated cluster object. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Luc Michel <luc.michel@greensocs.com> Reviewed-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com> Message-id: 20190121152218.9592-5-peter.maydell@linaro.org
-
Luc Michel authored
a TID or PID value means "any thread" (resp. "any process"). This commit fixes the different combinations when at least one value is 0. When both are 0, the function now returns the first attached CPU, instead of the CPU with TID 1, which is not necessarily attached or even existent. When PID is specified but TID is 0, the function returns the first CPU in the process, or NULL if the process does not exist or is not attached. In other cases, it returns the corresponding CPU, while ignoring the PID check when PID is 0. Reported-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Luc Michel <luc.michel@greensocs.com> Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Message-id: 20190119140000.11767-1-luc.michel@greensocs.com Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-