Eppic now resolves symbols to their real typed instances directly.
No need to know and cast from symbol address anymore.
For backward compatibility, you can define environment variable
-----Original Message-----
From: Sebastian Ott [mailto:sebott@linux.vnet.ibm.com]
Sent: Thursday, September 06, 2012 6:50 AM
To: Luc Chouinard; Dave Anderson
Cc: crash-utility(a)redhat.com; holzheu(a)linux.vnet.ibm.com
Subject: resolve symbols: sial.so vs eppic.so
The way symbols are resolved in sial scripts is different between
sial.so and
eppic.so. A symbol resolves to the address of the symbol using
sial.so
and to the
memory content using eppic.so.
In crash 6.0.9 I got e.g.:
crash> sym dev_kobj
979138 (b) dev_kobj
crash> rd dev_kobj
979138: 0000000174c9aac0 ....t...
crash> dev_kobj
dev_kobj = $3 = (struct kobject *) 0x174c9aac0
Using a sial script:
crash> !cat foo.sial
string foo_help() { return ""; }
string foo_opt() { return ""; }
string foo_usage() { return ""; }
int foo()
{
printf("0x%x\n", dev_kobj);
return 1;
}
./eppic.so: shared object loaded
crash> load foo.sial
crash> foo
0x74c9aac0
./sial.so: shared object loaded
crash> load foo.sial
crash> foo
0x979138
Is this an intentional change or a bug?
Regards,
Sebastian