Well, I haven't been able to figure how the free block list is supposed to be
filled; tracing the code I don't see how it would work. It certainly doesn't
as-is (alloc.c), surely because I have something setup wrong (with the blklist
initialized to NULL in the code, enqueue tries to *blklist=element, which
segfaults of course). Anyway, to make some progress, I modified alloc_block to
always allocate memory as if size > CHUNKSZ all the time. This gave me a lcrash
executable that would execute without segfaulting, although it is very very
slow, and can't seem to access any useful information. Also, I'm having a magic
number mismatch, I had to comment out the checks for that in do_report (don't
know why this occurs yet, maybe my crash dump is bad- MCL's analyis program
crash2.3 also doesn't work on my crash dump).
Here is what I'm currently getting for lcrash -r map.0 vmdump.0 (it "hangs"
after printing this):
Attempting to load previous index "index.10" ... complete.
cmpreadmem(): 8 bytes, 0x584c80 (just a page)
__cmppread(): initiating search for 0x584c80
__cmppindex(): hash = 16472, addr = 0x584c80
__cmppindex(): addr = 0x584c80, tmpptr->addr = 0x584000
__cmppread(): found the page in the page index!
0x584000: 4725 -> 8192 COMPRESSED, writing 8192 bytes
__cmppinsert(): Malloc occurred! [0]
__cmppinsert(): Inserting page into cache! (0x584c80) [0]...
__cmppget(): copying page of data (nbytes = 8, offset = 3200, in_addr =
0x584c80)
__cmppread(): found the item in the hash table second time!
cmpreadmem(): 8 bytes, 0x584c90 (just a page)
__cmppread(): initiating search for 0x584c90
__cmppget(): copying page of data (nbytes = 8, offset = 3216, in_addr =
0x584c90)
__cmppread(): found the item in the hash table!
=======================
LCRASH CORE FILE REPORT
=======================
GENERATED ON:
Wed May 3 13:24:59 2000
TIME OF CRASH:
Tue Apr 18 15:08:24 2000
PANIC STRING:
User created crash dump
MAP:
map.0
VMDUMP:
vmdump.0
================
COREFILE SUMMARY
================
The system died due to a software failure.
===================
UTSNAME INFORMATION
===================
sysname : Linux
nodename : dhcp96-180.cxo.dec.com
release : 2.2.13
version : #10 Tue Feb 8 16:06:15 MST 2000
machine : alpha
domainname : gldulab
===============
LOG BUFFER DUMP
===============
cmpreadmem(): reading 8192 bytes, 0x587030 (a new page)
__cmppread(): initiating search for 0x587030
__cmppindex(): hash = 28760, addr = 0x587030
__cmppread(): page not found! (0x587030)
cmpreadmem(): reading 8192 bytes, 0x589030 (leftovers)
__cmppread(): initiating search for 0x589030
__cmppindex(): hash = 36952, addr = 0x589030
__cmppread(): page not found! (0x589030)
====================
CURRENT SYSTEM TASKS
====================
ADDR UID PID PPID STATE PRI FLAGS MM
NAME
==============================================================================
cmpreadmem(): 1064 bytes, 0x4e8000 (just a page)
__cmppread(): initiating search for 0x4e8000
__cmppindex(): hash = 32846, addr = 0x4e8000
__cmppindex(): addr = 0x4e8000, tmpptr->addr = 0x4e8000
__cmppread(): found the page in the page index!
0x4e8000: 96 -> 8192 COMPRESSED, writing 8192 bytes
__cmppinsert(): Malloc occurred! [1]
__cmppinsert(): Inserting page into cache! (0x4e8000) [1]...
__cmppget(): copying page of data (nbytes = 1064, offset = 0, in_addr =
0x4e8000)
__cmppread(): found the item in the hash table second time!
--
http://www.bigfoot.com/~brihall
Linux Consultant
|