On Tue, Apr 1, 2008 at 11:43 PM, Mock, George <[EMAIL PROTECTED]> wrote:
>  The executables work fine on Windows and Linux machines.  Except one
>  customer of mine, who is running a Linux executable, see this error:
>
>     Can't locate object method "new" via package "XML::Parser" at
>     XML/Simple.pm line 404, <STDIN> line 1.
>
>  I asked the customer to zip up the /tmp/par-username directory and send
>  it to me.  I cannot find anything amiss in it.  In particular, when I
>  look at the file Parser.pm I plainly see the line ...
>
>     sub new {
>
>  So, I'm stuck.  I'd appreciate any thoughts on what I should try next.

Advise your customer to run your executable under strace

  strace -f -o strace.out -e trace=file,process your.exe ...

and send you strace.out. I suspect that either your pp'ed executable
is missing something that's accidentically present on all machines
except this customer's or it's something that is accidentically
present only on this machine, but in an incompatible version,
and taking precedence over the version packed into the executable.

So I would examine strace.out for files pulled in (i.e. an open() call that
succeeds) from outside /tmp/par-USER (ruling out the expected,
e.g. /lib/libc.so.6) and also failing "searches", i.e. consecutive unsuccessful
open() calls for the same file in different directories that don't end
with a successfull open().
Since XML::Parser::Expat is involved I would especially check
which libexpat.so.? is pulled in and whether it cleanly resolves
with the packed XML/Parser/Expat.so - Perl's dynamic loading
of shared libraries is known to fail sometimes without throwing
an appropriate error.

Cheers, Roderich

Reply via email to