From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: richard.henderson@linaro.org,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PULL 35/38] gdbstub: Report the actual qemu-user pid
Date: Mon, 3 Jul 2023 14:44:24 +0100 [thread overview]
Message-ID: <20230703134427.1389440-36-alex.bennee@linaro.org> (raw)
In-Reply-To: <20230703134427.1389440-1-alex.bennee@linaro.org>
From: Ilya Leoshkevich <iii@linux.ibm.com>
Currently qemu-user reports pid 1 to GDB. Resolve the TODO and report
the actual PID. Using getpid() relies on the assumption that there is
only one GDBProcess. Add an assertion to make sure that future changes
don't break it.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20230621203627.1808446-6-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230630180423.558337-36-alex.bennee@linaro.org>
diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c
index ce3e4a2671..697dd4bbad 100644
--- a/gdbstub/gdbstub.c
+++ b/gdbstub/gdbstub.c
@@ -202,13 +202,16 @@ void gdb_memtox(GString *buf, const char *mem, int len)
static uint32_t gdb_get_cpu_pid(CPUState *cpu)
{
- /* TODO: In user mode, we should use the task state PID */
+#ifdef CONFIG_USER_ONLY
+ return getpid();
+#else
if (cpu->cluster_index == UNASSIGNED_CLUSTER_INDEX) {
/* Return the default process' PID */
int index = gdbserver_state.process_num - 1;
return gdbserver_state.processes[index].pid;
}
return cpu->cluster_index + 1;
+#endif
}
GDBProcess *gdb_get_process(uint32_t pid)
@@ -2137,19 +2140,25 @@ void gdb_read_byte(uint8_t ch)
void gdb_create_default_process(GDBState *s)
{
GDBProcess *process;
- int max_pid = 0;
+ int pid;
+#ifdef CONFIG_USER_ONLY
+ assert(gdbserver_state.process_num == 0);
+ pid = getpid();
+#else
if (gdbserver_state.process_num) {
- max_pid = s->processes[s->process_num - 1].pid;
+ pid = s->processes[s->process_num - 1].pid;
+ } else {
+ pid = 0;
}
+ /* We need an available PID slot for this process */
+ assert(pid < UINT32_MAX);
+ pid++;
+#endif
s->processes = g_renew(GDBProcess, s->processes, ++s->process_num);
process = &s->processes[s->process_num - 1];
-
- /* We need an available PID slot for this process */
- assert(max_pid < UINT32_MAX);
-
- process->pid = max_pid + 1;
+ process->pid = pid;
process->attached = false;
process->target_xml[0] = '\0';
}
--
2.39.2
next prev parent reply other threads:[~2023-07-03 13:56 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-03 13:43 [PULL 00/38] maintainer updates for 8.1: testing, fuzz, plugins, docs, gdbstub Alex Bennée
2023-07-03 13:43 ` [PULL 01/38] gitlab: explicit set artifacts publishing criteria Alex Bennée
2023-07-03 13:43 ` [PULL 02/38] gitlab: ensure coverage job also publishes meson log Alex Bennée
2023-07-03 13:43 ` [PULL 03/38] gitlab: reduce testing scope of check-gcov Alex Bennée
2023-07-03 13:43 ` [PULL 04/38] docs/devel: remind developers to run CI container pipeline when updating images Alex Bennée
2023-07-03 13:43 ` [PULL 05/38] tests/tcg: add mechanism to handle plugin arguments Alex Bennée
2023-07-03 13:43 ` [PULL 06/38] qemu-keymap: properly check return from xkb_keymap_mod_get_index Alex Bennée
2023-07-03 13:43 ` [PULL 07/38] scripts/oss-fuzz: add a suppression for keymap Alex Bennée
2023-07-03 13:43 ` [PULL 08/38] tests/qtests: clean-up and fix leak in generic_fuzz Alex Bennée
2023-07-03 13:43 ` [PULL 09/38] tests/docker: add test-fuzz Alex Bennée
2023-07-03 13:43 ` [PULL 10/38] Makefile: add lcitool-refresh to UNCHECKED_GOALS Alex Bennée
2023-07-03 13:44 ` [PULL 11/38] tests/lcitool: update to latest version Alex Bennée
2023-07-03 13:44 ` [PULL 12/38] tests/lcitool: Bump fedora container versions Alex Bennée
2023-07-03 13:44 ` [PULL 13/38] tests/lcitool: add an explicit gcc-native package Alex Bennée
2023-07-03 13:44 ` [PULL 14/38] tests/lcitool: introduce qemu-minimal Alex Bennée
2023-07-03 13:44 ` [PULL 15/38] tests/docker: convert riscv64-cross to lcitool Alex Bennée
2023-07-03 13:44 ` [PULL 16/38] tests/avocado: update firmware to enable sbsa-ref/max Alex Bennée
2023-07-03 13:44 ` [PULL 17/38] tests/avocado: Make the test_arm_bpim2u_gmac test more reliable Alex Bennée
2023-07-03 13:44 ` [PULL 18/38] target/arm: make arm_casq_ptw CONFIG_TCG only Alex Bennée
2023-07-03 13:44 ` [PULL 19/38] plugins: force slow path when plugins instrument memory ops Alex Bennée
2023-07-03 13:44 ` [PULL 20/38] plugins: fix memory leak while parsing options Alex Bennée
2023-07-03 13:44 ` [PULL 21/38] plugins: update lockstep to use g_memdup2 Alex Bennée
2023-11-13 10:46 ` Thomas Huth
2023-11-13 11:40 ` Alex Bennée
2023-11-13 11:55 ` Daniel P. Berrangé
2023-11-13 12:21 ` Thomas Huth
2023-07-03 13:44 ` [PULL 22/38] docs/devel: add some front matter to the devel index Alex Bennée
2023-07-03 13:44 ` [PULL 23/38] include/migration: mark vmstate_register() as a legacy function Alex Bennée
2023-07-03 13:44 ` [PULL 24/38] include/hw/qdev-core: fixup kerneldoc annotations Alex Bennée
2023-07-03 13:44 ` [PULL 25/38] docs/devel/qom.rst: Correct code style Alex Bennée
2023-07-03 13:44 ` [PULL 26/38] docs/devel: split qom-api reference into new file Alex Bennée
2023-07-03 13:44 ` [PULL 27/38] docs/devel: introduce some key concepts for QOM development Alex Bennée
2023-07-03 13:44 ` [PULL 28/38] gdbstub: lightly refactor connection to avoid snprintf Alex Bennée
2023-07-03 13:44 ` [PULL 29/38] gdbstub: Permit reverse step/break to provide stop response Alex Bennée
2023-07-08 6:17 ` Michael Tokarev
2023-07-08 10:10 ` Alex Bennée
2023-07-09 8:12 ` Michael Tokarev
2023-07-03 13:44 ` [PULL 30/38] gdbstub: clean-up vcont handling to avoid goto Alex Bennée
2023-07-03 13:44 ` [PULL 31/38] linux-user: Expose do_guest_openat() and do_guest_readlink() Alex Bennée
2023-07-03 13:44 ` [PULL 32/38] linux-user: Add "safe" parameter to do_guest_openat() Alex Bennée
2023-07-03 13:44 ` [PULL 33/38] linux-user: Emulate /proc/self/smaps Alex Bennée
2023-07-03 13:44 ` [PULL 34/38] gdbstub: Expose gdb_get_process() and gdb_get_first_cpu_in_process() Alex Bennée
2023-07-03 13:44 ` Alex Bennée [this message]
2023-07-03 13:44 ` [PULL 36/38] gdbstub: Add support for info proc mappings Alex Bennée
2023-07-03 13:44 ` [PULL 37/38] docs: Document security implications of debugging Alex Bennée
2023-07-03 13:44 ` [PULL 38/38] tests/tcg: Add a test for info proc mappings Alex Bennée
2023-07-04 8:19 ` [PULL 00/38] maintainer updates for 8.1: testing, fuzz, plugins, docs, gdbstub Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230703134427.1389440-36-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=iii@linux.ibm.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).