Aracılığıyla paylaş


Simge Yükleniyor

fInvadeProcess parametresi true olarak ayarlanmış SymInitialize işlevini çağırdığınızda veya bir modül belirtmek için SymLoadModuleEx işlevini çağırdığınızda sembol işleyicisi simgeleri yükler. Her iki durumda da sembol işleyicisi, SymSetOptions işlevi tarafından ayarlanan seçeneklere bağlı olarak semboller istenene kadar sembolleri yükler veya simge yüklemesini engeller.

Sembol işleyicisi herhangi bir modül için sembolik bilgileri almak için kullanılabilir; SymInitialize çağrısında belirtilen bir işlemle ilişkilendirilmesi gerekmez. Rastgele bir modül kullanmak için ImageName parametresinde modül görüntüsünün tam yolunu belirtin. Hata ayıklama bilgileri (.exe, .dll, .drv, .sys, .scr, .cplveya .com) içeren yürütülebilir modüllerin yolunu kullanabilirsiniz. Herhangi bir yük adresi belirtmek için BaseOfDll parametresini kullanın; ardından sembol adresleri bu adresten temel alınır.

Bir uygulama süresi boyunca bir sembol modülünün yüklü tutulması gerekli olmayabilir. Sembol modülünü sembol işleyicisinin modül listesinden serbest bırakmak için SymUnloadModule64 işlevini kullanın. Bu işlev, sembol modülü için ayrılan belleği serbest bırakır. Bu modülün simgelerini yeniden kullanmak için, simge ertelenen yükleme seçeneği ayarlanmış olsa bile SymLoadModuleEx işlevini çağırmanız gerekir.

Sembol Yükleme Sorunlarını Tanılama

Sembolleri yükleme girişimlerinin tümünü görüntülemek için SYMOPT_DEBUG ile SymSetOptions çağrısı yapın. Bu, DbgHelp'in simge aramalarıyla ilgili, aradığı dizinler ve hata iletileri gibi ayrıntılı bilgileri içeren OutputDebugString işlevini çağırmasını sağlar. Kodunuz SymRegisterCallback64kullanıyorsa, DbgHelp OutputDebugStringçağırmak yerine geri çağırma işlevinizi çağırır. ActionCode parametresi CBA_DEBUG_INFO olarak ayarlanır ve CallbackData parametresi görüntülenebilir bir dizedir.

Bu hata ayıklama çıkışının kaynak kodunuzu değiştirmeden konsolda görüntülenmesini sağlamak için DBGHELP_DBGOUT ortam değişkenini SymInitialize işlevini çağırmadan önceNULL olmayan bir değerine ayarlayın. Bilgileri bir dosyaya kaydetmek için DBGHELP_LOG ortam değişkenini kullanılacak günlük dosyasının adı olarak ayarlayın.

Bu özelliklerin yalnızca gerektiğinde kullanılması gerektiğini unutmayın. Birçok simge içeren modüllerin sembol yüklemesini yavaşlatabilir.