readline + flex + bison => divne chovani
Leos Literak
literakl na alpha.inf.upol.cz
Úterý Duben 20 11:51:24 CEST 1999
On Tue, 20 Apr 1999, Jan Kasprzak wrote:
> Leos Literak wrote:
> :
> : Pokud zrusim cteni pres readline, precte nekolik radek, ale soubor
> : o 2MB ne, skonci se sigsegv.
> : Chybu bych tipoval na flex, bison si s tim poradi. Hloubka jeho zanoreni
> : je dostatecna (YYMAXDEPTH 1000000).
> :
> Mozna bude problem jinde, doporucuji slikovat s ElectricFence
> a pak ladit. Je velka pravdepodobnost, ze jde o chybu alokace
> (at uz ve flexu nebo ve vlastnim programu), a ElectricFence ji odhali
> tam, kde skutecne je, a ne az treba o mnoho instrukci dal.
>
Dostal jsem par odpovedi, takze to shrnu.
Chyba byla pri alokaci zasobniku lexikalnich symbolu. Na radce
ssp = alloca(stack_size*sizeof ...
to skoncilo se SIGSEGV (na dvou ruznych unixech). To se delo pri
zvetsovani ze 102400 na 204800. Naprosto nechapu proc. Ulimit -s
taky nepomohl (alloca alokuje pamet ze zasobniku).
Na bisonu mi doporucili zmenit gramatiku tak, abych tam zavedl levou
rekurzi a tim odstranil odkladani vsech symbolu na zasobnik. Pomohlo to.
Jinak electric fence znam a vsem doporucuji. V tomto pripade ale nemohl
pomoci.
Dekuji vsem za pomoc, obhajil jsem :).
LL
-----------------------------------------------------------------------
Real Name: Leos Literak
Prefered Mail Address: literakl na seznam.cz
Web: http://www.inf.upol.cz/~literakl/
Alternate http://www.penguin.cz/~literakl/
Další informace o konferenci Linux