Thanks Dave.
I found one more issue with a somewhat "corrupt" vmcore. In this case it is
ARM-specific in unwind_arm.c, so maybe Mika will also look at it.
In the case I am investigating I get a readmem error while reading the unwind tables. The
way unwinding currently is implemented Crash then stops and no further analysis is
possible. When I patched Crash to continue anyhow, every command I tried worked nicely
including bt, so there is no reason to stop at this kind of problem.
When investigating further I found that the problem occurs in init_module_unwind_tables.
It is in the call to do_list(&ld) that the readmem error is found. I also looked in
the code for do_list and saw that it could be configured to return even if errors were
found, by setting ld.flags.
	/*
	 * Iterate through unwind table list and store start address of each
	 * table in table_list.
	 */
	ld.flags += RETURN_ON_LIST_ERROR;           /* added line */
	hq_open();
	cnt = do_list(&ld);
	if (cnt == -1) {           /* added if statement, 3 lines */
		return FALSE;
	}
	table_list = (ulong *)GETBUF(cnt * sizeof(ulong));
	cnt = retrieve_list(table_list, cnt);
	hq_close();
By adding the lines indicated above I get an appropriate warning that the unwind tables
cannot be read, and then Crash works as usual.
Jan
Jan Karlsson
Senior Software Engineer
MIB
 
Sony Mobile Communications
Tel: +46703062174
sonymobile.com
 
-----Original Message-----
From: crash-utility-bounces(a)redhat.com [mailto:crash-utility-bounces@redhat.com] On Behalf
Of Dave Anderson
Sent: torsdag den 26 april 2012 15:09
To: Discussion list for crash utility usage, maintenance and development
Cc: Fänge, Thomas
Subject: Re: [Crash-utility] loop in crash
----- Original Message -----
 Hi
 
 and thanks for your work with this problem.
 
 As you expected crash silently just loops and I spotted the problem
 by turning on debug printouts.
 If I include printouts for the "cache" address, the first value seems
 reasonable, but then it starts to repeat with the value 0x00000001.
 Last, your patch solves the problem nicely. I get a warning about
 duplicate kmem_slab entry and crash continues to execute and issues
 other warnings indicating a corrupt vmcore file.
 
 Jan 
 
OK good -- I should have hq_xxx()'d that loop a long time ago.
Queued for crash-6.0.6.
Thanks,
  Dave
 
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility