[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 for-3.0] tests/libqtest: Improve kill_qemu()
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v2 for-3.0] tests/libqtest: Improve kill_qemu() |
Date: |
Tue, 24 Jul 2018 09:35:58 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 07/24/2018 01:36 AM, Markus Armbruster wrote:
Eric Blake <address@hidden> writes:
In kill_qemu() we have an assert that checks that the QEMU process
didn't dump core:
assert(!WCOREDUMP(wstatus));
Unfortunately the WCOREDUMP macro here means the resulting message
is not very easy to comprehend on at least some systems:
- if (pid == s->qemu_pid && WIFSIGNALED(wstatus)) {
- assert(!WCOREDUMP(wstatus));
+ } else if (WIFSIGNALED(wstatus)) {
+ int sig = WTERMSIG(wstatus);
+ const char *signame = strsignal(sig) ?: "unknown ???";
+
+ if (!WCOREDUMP(wstatus)) {
+ die = false;
Does WCOREDUMP(wstatus) depend on the user's ulimit -c?
'man waitpid' on Linux mentions that WCOREDUMP is nonportable, but does
not mention any interaction with setrlimit. But a quick test shows:
$ ulimit -S -c 0
$ cat foo.c
int main(int argc, char **argv) {
return *argv[1];
}
$ gcc -o foo -Wall foo.c
$ ./foo 1
$ ./foo
Segmentation fault (core dumped)
$
the output was produced by bash, which uses waitpid() - and therefore
the fact that bash reports the core dump even when no core file is
created is promising.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
Re: [Qemu-devel] [PATCH v2 for-3.0] tests/libqtest: Improve kill_qemu(), Thomas Huth, 2018/07/24