Daniel Li wrote:
It seems there is a regression in recent versions of crash which
disabled the fix put into crash 4.0-3.9 to deal with the fact older
version gcc was not providing enough debug info in vmlinux (see the
email threads on Oct 4 and Oct 5). Is there any plan to add the fix back in?
Well, I can't put anything back in that was never removed.
The relevant patch that went into 4.0-3.6 to deal with the
pid_hash debuginfo missing from the vmlinux file was this:
1225,1226c1221,1235
< if (!(plen = get_array_length("pid_hash", NULL, sizeof(void *))))
< error(FATAL, "cannot determine pid_hash array
dimensions\n");
---
if (!(plen = get_array_length("pid_hash", NULL,
sizeof(void *)))) {
/*
* Workaround for gcc omitting debuginfo data for pid_hash.
*/
if (enumerator_value("PIDTYPE_MAX", &value)) {
if ((sp = next_symbol("pid_hash", NULL)) &&
(((sp->value - tt->pidhash_addr) / sizeof(void *)) <
value))
error(WARNING, "possible pid_hash array
mis-handling\n");
plen = (int)value;
} else {
error(WARNING,
"cannot determine pid_hash array dimensions\n");
plen = 1;
}
}
...and that code's still there.
Looking at the 4.0-3.9 changelog, I don't see anything that could
have affected the pid_hash handling.
The only "sample" 4.0.0-built dumpfile that I have is a 2.6.16
xen dumpfile, and it still works OK with the latest crash:
crash> sys
KERNEL: /usr/dumps/xen-2.6.16/vmlinux
DUMPFILE: /usr/dumps/xen-2.6.16/vmcore
CPUS: 2
DATE: Wed Oct 4 11:16:36 2006
UPTIME: 00:02:07
LOAD AVERAGE: 0.02, 0.02, 0.00
TASKS: 67
NODENAME: compute-3-5-vm7
RELEASE: 2.6.16.13-xen
VERSION: #5 SMP Tue Sep 19 17:19:32 EDT 2006
MACHINE: x86_64 (2800 Mhz)
MEMORY: 108 MB
crash> whatis pid_hash
<data variable, no debug info> pid_hash;
crash> help -k | grep gcc_version
gcc_version: 4.0.0
crash>
Are you seeing either of those two "pid_hash array" warning
messages in the patch above? What does "crash -d7" show?
Dave