Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: chapefm 22 Dubna 2008, 14:34:40
-
Vytvořil jsem si školní program který má simulovat příkazový řádek. Program jsem psal v Borland C++ a zkoušel ho na Solarisu, tam fungoval. teď jsem to odzkoušel doma a ve škole na Ubuntu a hodí to chybovou hlášku a program se neprovede.
vstup je ve formátu: ps -ef | grep root | wc -l > count.txt // délka příkazu neni rozhodující, je zde jen pro ilustraci a soubor se vytvoří, ale je prázdný
a toto to vypíše, s tím že ten Memory map: jsme sem nezkopiroval cely, ale asi jen 1/5
*** glibc detected *** ./pokus: double free or corruption (out): 0x0804d198 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7cded65]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7ce2800]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb7ea7d81]
/usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0xb7ea7ddd]
./pokus[0x804923c]
./pokus[0x8049f3f]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7c8b050]
./pokus(__gxx_personality_v0+0x71)[0x8048e91]
======= Memory map: ========
08048000-0804c000 r-xp 00000000 08:01 1138994 /home/ondra/Desktop/pokus
0804c000-0804d000 rw-p 00003000 08:01 1138994 /home/ondra/Desktop/pokus
0804d000-0806e000 rw-p 0804d000 00:00 0 [heap]
b7b00000-b7b21000 rw-p b7b00000 00:00 0
b7b21000-b7c00000 ---p b7b21000 00:00 0
může mi někdo poradit kde je chyba? na Googlu jsme se díval a nic s touhle chybou 0x0804d198 jsem nenašel.
díky
-
To bude tím, že 0x0804d198 bude adresa alokace v paměti. Aneb jiné dříví hoří jinak.
Spíš bych strejčkovi dal hledat "double free or corruption"! ;)
-
po zadání "double free or corruption" vyjelo plno odkazů a tak jsem to specifikoval na double free or corruption (out)
a tím se probírám, a pročítám a hledám, a proto jsem sem zapsal i to místo v paměti, i knihovny kterých se to týká.
jinak pod hláškou double free or corruption (out) je spousta bugu ve všech možných programech a vše odkazují na knihovny.
Začínám mít pocit že volání některých funkcí je v Borlandu a Solarisu jiné než v Ubuntu.
Jinak část problémů co je k tomu to tématu na netu byla vždy vyřešena novějšími knihovnami o něco později
-
Může to být nějaký libs-bug, může to být nešikovně napsaný algoritmus, ...
-
no prave ze pod Solarisem a v Borlandu to jede v pohodě a bez bugu ???
tak to se asi holt budu muset kouknout na všechny funkce zda je ubuntu nemá kapku jinak
-
Musíš vzít v potaz aj verze překladače a knihoven. Mluvíš tu třeba o Solarisu. Který myslíš? Desina třeba používá GCC toolkit 3.4.2 (Release on September 6, 2004). Borlandem myslíš co? Prehistorickou sadu někdy z devadesátých let nebo dnes používané IDE?
-
Jsou to dne spoužívané verze, Solaris co jede na CVUT bohuzel z webu nezjistiim verzi, nelognu se tam a Borland nějakou loňskou free verzi pro skolni uziti