You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/tests/tcg/multiarch/late-attach.c

42 lines
955 B
C

/*
* Test attaching GDB to a running process.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include <assert.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
static const char *phase = "start";
int main(void)
{
sigset_t set;
int sig;
assert(sigfillset(&set) == 0);
assert(sigprocmask(SIG_BLOCK, &set, NULL) == 0);
/* Let GDB know it can send SIGUSR1. */
phase = "sigwait";
if (getenv("LATE_ATTACH_PY")) {
assert(sigwait(&set, &sig) == 0);
if (sig != SIGUSR1) {
fprintf(stderr, "Unexpected signal %d\n", sig);
return EXIT_FAILURE;
}
}
/* Check that the guest does not see host_interrupt_signal. */
assert(sigpending(&set) == 0);
for (sig = 1; sig < NSIG; sig++) {
if (sigismember(&set, sig)) {
fprintf(stderr, "Unexpected signal %d\n", sig);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}