Hello,
On Tue, 18 Nov 2008, Paul Evans wrote:
> A quick look with 'nm -D' on the library in my package and the library
> it claimed to link against showed this was bogus:
>
> $ nm -D libtermkey.so | grep tiogetstr
> U tigetstr
Please provide the corresponding output in "objdump -w -f -p -T -R"
format.
> I went hunting in the code and eventually found this to be a bug in a
> regexp in Objdump.pm, line 255:
>
> if ($line =~ /^[0-9a-f]+
> (.{7})\s+(\S+)\s+[0-9a-f]+\s+(\S+)?(?:(?:\s+$vis_re)?\s+(\S+))/) {
>
> This RE uses a useless noncapturing group at the end (?: ... ) when I
> think it ought to be moved.
> If I inspect runtime using perl -d on this
> module against my library, I find:
>
> $line = "0000000000000000 D *UND*\cI0000000000000000 snprintf"
>
> Using your original regexp:
>
> eval: [ $line =~ /^[0-9a-f]+
> (.{7})\s+(\S+)\s+[0-9a-f]+\s+(\S+)?(?:(?:\s+$vis_re)?\s+(\S+))/ ]
> [ ]
>
> I.e. no match. Instead by fixing it:
>
> eval: [ $line =~ /^[0-9a-f]+
> (.{7})\s+(\S+)\s+[0-9a-f]+(?:\s+(\S+))?(?:\s+$vis_re)?\s+(\S+)/ ]
> [ ' D ', '*UND*', undef, undef, 'snprintf' ]
The analysis looks correct but I find the content of your $line a bit
weird thus I'd like to see the full objump output. This way I can also add
a non-regression test for the case at hand.
Cheers,
--
Raphaël Hertzog
Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]