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]

Reply via email to