Re: pfiles: program is _LP64, self is not: <pid>



adirtymindisajoyforever <getridofthespam@xxxxxxxxx> wrote:
Hi all,

Could someone explain the sbject message?
System is solaris 9.

Looks like you ran the 32 bit pfiles and asked it to examine a 64 bit
process.

# /usr/bin/sparcv7/pfiles 2599
pfiles: program is _LP64, self is not: 2599

However, that's very odd, because by default, the pfiles in your path is
/usr/bin/pfiles, which is just a link to isaexec.

# grep /usr/bin/pfiles /var/sadm/install/contents
/usr/bin/pfiles=../../usr/lib/isaexec l none SUNWesu
# ls -li /usr/bin/pfiles /usr/lib/isaexec
18227 -r-xr-xr-x 37 root bin 5256 Jan 5 2000 /usr/bin/pfiles
18227 -r-xr-xr-x 37 root bin 5256 Jan 5 2000 /usr/lib/isaexec

Because of that, you should be running the 64 bit version of pfiles if
you're running a 64 bit kernel (which would be
/usr/bin/sparcv9/pfiles).

Either you're not running a 64 bit kernel (which would mean that you
can't have a 64 bit program running), pfiles is no longer a correct link
but a 32 bit program, or isaexec couldn't find the correct file.

Looking at a normal machine with 'truss', we see that first
pfiles(isaexec) is run, then the correct pfiles is run later. What do
you get on your machine?

# truss -a -texec pfiles $$ > /dev/null
execve("/usr/bin/pfiles", 0xFFBEFB8C, 0xFFBEFB98) argc = 2
argv: pfiles 20646
execve("/usr/bin/sparcv9/pfiles", 0xFFBEFB8C, 0xFFBEFB98) argc = 2
argv: pfiles 20646

If there's only one execve, then /usr/bin/pfiles must not be an isaexec
binary.

What does 'ls -l /usr/bin/pfiles' show?

--
Darren Dunham ddunham@xxxxxxxx
Senior Technical Consultant TAOS http://www.taos.com/
Got some Dr Pepper? San Francisco, CA bay area
< This line left intentionally blank to confuse you. >
.