On Thu, 6 Sep 2012, Luc Chouinard wrote:
Pulled trigger too quick.
Here's the variable you should set.
export EPPIC_LEGACY_MODE=1
Ok thanks. In addition to that I just found out that one can use
"#ifdef eppic" inside scripts.
Regards,
Sebastian
If a more granular way of switching from old to new mode is needed,
we
should discuss it.
-Luc
> -----Original Message-----
> From: Luc Chouinard
> Sent: Thursday, September 06, 2012 9:01 AM
> To: 'Sebastian Ott'; Dave Anderson
> Cc: crash-utility(a)redhat.com; holzheu(a)linux.vnet.ibm.com
> Subject: RE: resolve symbols: sial.so vs eppic.so
>
> 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