File: README.rst

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (45 lines) | stat: -rw-r--r-- 1,777 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
How to create vmcores for tests
===============================

1. Boot a FreeBSD VM with as little memory as possible and create a core dump
   per `FreeBSD Handbook Kernel Debugging Chapter`_.  Note that you may need to
   reboot with more memory after the kernel panic as otherwise savecore(8) may
   fail.

   For instance, I was able to boot FreeBSD and qemu-system-x86_64 with 128 MiB
   RAM but had to increase it to 256 MiB for the boot after kernel panic.

2. Transfer the kernel image (``/boot/kernel/kernel``) and vmcore
   (``/var/crash/vmcore.latest``) from the VM.

3. Patch libfbsdvmcore using ``libfbsdvmcore-hacks.patch`` and build LLDB
   against the patched library.

4. Patch LLDB using ``lldb-minimize-processes.patch`` and build it.

   WARNING: LLDB will now modify core files in order to make the resulting
   test vmcores smaller.  Make a backup if necessary.

5. Do a test run of ``test.script`` in LLDB against the kernel + vmcore::

    lldb -b -s test.script --core /path/to/core /path/to/kernel

   If everything works fine, the LLDB output should be interspersed with
   ``%RD`` lines.  The vmcore will also be modified to shorten the process
   list in ``allproc``.

6. Open the vmcore in the patched LLDB again and choose interesting threads
   for testing.  Update thread numbers in ``test.script`` if necessary.

7. Use the ``copy-sparse.py`` tool to create a sparse version of the vmcore::

       lldb -b -s test.script --core /path/to/core /path/to/kernel |
           grep '^% RD' | python copy-sparse.py /path/to/core vmcore.sparse

8. Compress the sparse vmcore file using ``bzip2``::

       bzip2 -9 vmcore.sparse


.. _FreeBSD Handbook Kernel Debugging Chapter:
   https://docs.freebsd.org/en/books/developers-handbook/kerneldebug/