Антон Кочков <anton.kochkov@...> writes:
> This is SBCL 1.0.54, an implementation of ANSI Common Lisp.
> More information about SBCL is available at <http://www.sbcl.org/>.
This is the first time in the build process that the new executable is
run, and attempts to load in the memory image saved by previous bits of
> SBCL is free software, provided as is, with absolutely no warranty.
> It is mostly in the public domain; some portions are provided under
> BSD-style licenses. See the CREDITS and COPYING files in the
> distribution for more information.
> CORRUPTION WARNING in SBCL pid 1688(tid 3084719808):
> Memory fault at 27060 (pc=0x27060, sp=0xb7a89e9c)
> The integrity of this image is possibly compromised.
I'd suggest that there's not much point in using LDB at this point;
likely what is happening is that something on your system is doing
something such as not honouring the mmap() address that has been asked
for. (SBCL depends on being able to load its memory image at a
specified address; there's code out there that implements relocation,
but it is not in mainline).
If my suspicion about mmap() is correct, then that could be found by
inspecting /proc/<pid>/maps; I suppose it could be something else, such
as not having write or execute permission on some memory that SBCL
expects to be able to write to or execute (or read, I guess). When I
used to debug this kind of thing for fun, I would enable the :sb-show
feature, and step very slowly through warm-init by using gdb to start
$ gdb src/runtime/sbcl
(gdb) break call_into_lisp
(gdb) run --core output/cold-sbcl.core
setting additional breakpoints in addresses given by
There are more, probably ancient and historical, tips and tricks on the
sbcl-internals wiki, if that still exists.