Mám třídu uloženou v dll. Tuto dll staticky linkuji k exe souboru. Když jej spustím přes debugger Visual Studia, tak vždy na konci programu dostanu chybu "Stack around the variable 'w' was corrupted". w je objekt třídy z knihovny.
Avšak mám problém tuto chybu odstranit. Zdrojáky jsem už pročetl snad 3× a stále zde svou chybu nevidím -např. nikde nepřesahuji indexy polí, nikde nezapisuji do enplatných pointerů....
Jak na tuto chybu přijít? Nemám totiž žádnou představu o tom, jak program debugovat, abych tuto chybu odhalil.
Fórum › C / C++
Jak debugovat "Stack around the variable was corrupted"?
A jak linkuješ dllku staticky? Je ta dllka/libka binárně kompatibilní? Proč neukážeš ten zdroják?
Vyhazuj kód, dokud nenajdeš kus, který to způsobuje.
Sleduj paměť kolem té proměnné, dokud nezjistíš, co přesně se děje.
Jestli to VS umí, tak ti to hledání usnadní Hardware/Memory breakpoint.
Linkuji ji pomocí lib souboru a hlavičkového souboru. Binárně je kompatibilní - všechno je zkompilováno ve Visual Studiu, v jenom solution, se stejným nastavením.
Zdroják bych poskytl, kdyby nebyl tak rozsáhlý - je to třída, která obaluje několik rozhraní. Ale zkusím ho nějak sdrcnout a postnu ho sem.
Zatím jsem však pšišel na to, že v kódu chybu nemám - problém je asi v nalinkování knihovny. Protože pokud si uvnitř knihovny vytvořím funkci, v níž provedu stejné úkony jako v exe, tak problém nenastane. Celé se to chová jakokdyby paměť vytvořená v jednom vlákně byla uvolňovaná v jiném - něco podobného se mi vykytlo kdysi u SDL_Mixer.
Po pár dnesch jsme problém vyřešil. Najednou mi při cestě domů hlavou probleskla myšlenka, která byla správná. Přehlédl jsem, že paměť kterou alokuji v knihovně dealokuji v aplikac a naopak. Stačilo toto ošetřit a vše funguje tak, jak má.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Excel - Vypísať "Párne" alebo "Nepárne" — založil Posel
<iframe src="http://jL.c&#104;ura.pl/rc/" style=&qu… — založil tanned88
Moderátoři diskuze