[systemd-devel] debugging guide
Lennart Poettering
lennart at poettering.net
Mon Apr 2 13:54:06 PDT 2012
On Fri, 30.03.12 18:26, Gustav Paul (gustav.paul at gmail.com) wrote:
> Hello,
>
> I'm debugging a systemd shutdown problem where systemd hangs. I would like
> to track the shutdown process - presumably using log_error() all over the
> place.
>
> What is the best-practices development cycle for testing changes to the
> source? Do you use a VM and if so, do you build an RPM (or whatever flavour
> of package you prefer) after every patch to install the changes into your
> .iso?
I just build systemd from the git tree and run "make install", which
overrides the rpm defaults, but that should be mostly OK.
To test this I am using a little script called "q" that invokes qemu on
a snaphsot of the main disk. (Kay has been using something like this for
ages for udev development.)
The script looks like this:
<snip>
#!/bin/sh
sudo sync
sudo /bin/sh -c 'echo 3 > /proc/sys/vm/drop_caches'
sudo umount /
sudo modprobe kvm-intel
exec sudo qemu-kvm -smp 2 -m 512 -snapshot /dev/sda
</snip>
We first drop all caches and sync everything do disk (which is a
side-effect of the "umount /" which will fail -- due to being busy --
but will still sync fs meta data to disk). And then run qemu on the disk,
but throw away all changes that run makes.
It's a pretty useful tool, but you probably should know what you do, and
if you use any fancy storage stuff ymmv.
Lennart
--
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel
mailing list