Máme DLL, ktorá poskytuje dátovú vrstvu preniekoľko našich projektov. Typicky pri ladení alebo pridávaní novej funkcie do tejto knižnice by som mohol spustiť jeden z projektov a vstúpiť do volania funkcie a pokračovať v ladení kódu v projekte DLL. Z nejakého dôvodu to už nefunguje, pretože sme prešli na Visual Studio 2008 ... Iba zaobchádza s kódom z druhého projektu ako s DLL, do ktorej nemá žiadny prehľad, a hlási výnimku z ľubovoľného riadku, na ktorý spadne.
Môžem to obísť tým, že otestujem samotný projekt DLL, ale naozaj by som rád mohol zakročiť a zistiť, ako veci fungujú so „skutočným“ kódom, ako som to býval schopný robiť.
Máte nejaké úvahy o tom, čo sa mohlo stať?
odpovede:
1 pre odpoveď č. 1Je súbor pdb pre dll v rovnakom adresáriako dll? Toto všetko by malo fungovať - robím to pravidelne. Prezrite si okno Moduly, ktoré vám ukáže, či sa mu podarilo načítať symboly pre dll. Pokiaľ to nemá, nebudete môcť vstúpiť do funkcií v tejto dll.
1 pre odpoveď č. 2
Zdá sa, že máte povolený „Iba môj kód“ a spoločnosť VS považuje ostatné projekty za váš kód. Vyskúšajte nasledovné
- Nástroje -> Možnosti -> Debugger
- Zrušte začiarknutie políčka „Iba môj kód“
- Skúste to znova
1 pre odpoveď č. 3
K tomuto problému som sa dostal otvorením triedyktorý sa bude volať v projekte, ktorý potrebujete, umiestnenie zarážky, ponechanie súboru otvoreného a spustenie ladiaceho programu. Debugger zasiahne bod prerušenia a relatívna cesta, ktorú VS používa, sa aktualizuje, aby sa budúce triedy otvorili automatizovane.