Iain MacDonnell wrote:
> 
> I've run into a problem with two different applications that link to
> libmusclecard. One of them is muscleTool-2.1.0, and the other is a
> proprietary tool that's not OpenSource, but the symptom is the same -
> ie. they both get stuck in an endless loop when trying to parse XML
> files, during yylex().
> 
> Eg. When I run muscleTool and try to do "tokens", it "hangs":
> 
> blue-midget# /opt/ITmuscle/bin/muscleTool
> MuscleCard shell - type "help" for help.
> muscleTool > version
> muscleTool version: 2.1.0
> Copyright (C) 1998-2002 David Corcoran
> Copyright (C) 2003 Ludovic Rousseau
> Copyright (C) 2004 Toni Andjelkovic
> Copyright (C) 2005 Karsten Ohme
> muscleTool > tokens
> 
> 
> I can see that the stack trace is:
> 
>  08053b29 yylex    (8047dbc, d1faab44, d1fbb170, d1fa7158, d1fbc16c,
> d1fa9daf) + 545
>  d1fa9e79 LTPBundleFindValueWithKey (8047225, d1fbc16c, 8047063, 0) + d9
>  d1fa7158 TPSearchBundlesForAtr (804759c, 9, 804737c) + 198
>  d1fa2e42 MSCListTokens (1, 0, 806fff8, 126) + 272
>  08055258 doListTokens (d1e987b4, c, 1d, 27, 8047634, 8047962) + 49
>  08052e78 yyparse  (d1fca0e0, d1ffb314, d1ffb840, 8047c38, 0, 6373756d)
> + 717
>  080535ce main     (1, 8047d60, 8047d68) + 12e
>  08052604 _start   (1, 8047e24, 0, 8047e41, 8047e60, 8047e6b) + 80
> 
> 
> The other application also hangs during yylex() (different type of XML
> file being parsed at the time).
> 
> In both cases, if I point them at an old libmusclecard.so from
> 1.2.9-beta7, the problem goes away. I did notice that the older library
> (which I didn't build - someone gave me the binary) is linked to
> 'libl.so' - the Solaris lex library, but my v1.3.x version is not. I
> tried forcing it by adding LEXLIB to LIBS in the Makefile, but it didn't
> help the actual problem - ie. the endless loop still occurs.
> 
> Could this have something do to with the visibility changes? I'm a bit
> flummoxed by it... :(

Actually the visibility changes should fix this. And at least on my
Debian they did. There was a problem with the lex parser of muscleTool
and the lexx stuff to parse the XML Info.plist from libmusclecard. I
thought it had something to do with newer gcc versions, because it was
working in former times, but a real reason would be interesting.
Use the tool objdump or nm or whatever to see the exported symbols of
the library. Maybe this can help.

Karsten
> 
>     ~Iain
> 
> 
> 
> _______________________________________________
> Muscle mailing list
> [email protected]
> http://lists.drizzle.com/mailman/listinfo/muscle

_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to