Re: loop in crash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




----- Original Message -----
> 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

Your patch makes perfect sense.  Any error(FATAL, ...) call prior to
RUNTIME being set kills the whole session.  But if it is possible for
the session to continue, then it should be allowed to.  

I'll also add an unwind-specific warning message, and make the same
change to the x86_64 populate_local_tables() function, upon which it
appears that the ARM version was based.

Queued for crash-6.0.6.  (Later today...)

Thanks,
  Dave

--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility


[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux