小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

TNTGina - 你用VC調(diào)試程序時(shí)經(jīng)常死機(jī)嗎

 Delores 2007-12-10
如果是,而且又不想忍受漫長(zhǎng)的注銷(xiāo)過(guò)程,試試看這個(gè) Gina 吧——TNTGina——用于 Terminate MSVC 的 NTGina。
  • 緣起:
    VC 在調(diào)試多線程程序(GraphEdit 調(diào)試 DShow Filter 時(shí),基本上都是)的時(shí)候經(jīng)常死機(jī),特別是在 Windows XP 中。
    此時(shí)按 Ctrl+Alt+Del 有效,但喚出任務(wù)管理器后,卻無(wú)法操作。只好作注銷(xiāo)或重啟處理:(
  • 注冊(cè):
    保存到系統(tǒng)登錄時(shí)能訪問(wèn)到的路徑上,用 RegSvr32.exe TNTGina.dll 注冊(cè)它。重新啟動(dòng)系統(tǒng)后才能生效。
    (這不是一個(gè)COM組件,只不過(guò)為了注冊(cè)和注銷(xiāo)方便,導(dǎo)出了兩個(gè)函數(shù),里面其實(shí)只是寫(xiě)了注冊(cè)表的一個(gè)鍵值,改寫(xiě)了GinaDLL的路徑)。
  • 注銷(xiāo):
    RegSvr32.exe /u TNTGina.dll
  • 用法:
    注冊(cè)這個(gè) Gina 后,問(wèn)題就接解決了——雖然不能從根本上解決問(wèn)題——不能防止VC死掉——但卻可以:
    按亮 ScrollLock,然后按 Ctrl+Alt+Del,MSVC 馬上被終止掉,系統(tǒng)恢復(fù)用戶界面響應(yīng)。重新打開(kāi)VC調(diào)試吧……
  • 原理:
    這是一個(gè) Gina DLL,Gina 是負(fù)責(zé)處理系統(tǒng)登錄等用戶界面操作的DLL,且 MS 允許用戶重寫(xiě)它。
    于是我寫(xiě)了這個(gè) DLL,處理了 SrcollLock 高亮狀態(tài)下的 Ctrl+Alt+Del 安全事件,并強(qiáng)制終止 MSVC 進(jìn)程。
    對(duì)于其它情況處理,則轉(zhuǎn)交給原來(lái)的 MSGina.dll。
  • 后話:
    這個(gè) DLL 是使用 AheadLib 自動(dòng)生成的,然后添加了一點(diǎn)操作代碼。
  • 下載:
    TNTGina (包括代碼)

代碼 | 評(píng)論(8) | 引用(0) | 閱讀(13438)
wsjws
2007/11/10 21:29
和aling 描述的一樣,VC2008一樣會(huì)有mspdbsrv.exe的問(wèn)題。在我的機(jī)器上就是如果不把mspdbsrv.exe進(jìn)程終止的話,一定會(huì)假死......暈死
aling
2007/07/09 22:59
謝謝,對(duì)vc2005也有用。不過(guò)有時(shí)mspdbsrv.exe這個(gè)進(jìn)程如果上次調(diào)試時(shí)沒(méi)有把它結(jié)束的話,再次重運(yùn)行vc2005有時(shí)會(huì)第一次就假死。而一般情況下vc2005第一次debug多線程程序時(shí)還算正常,如果沒(méi)有退出vc2005,而且也沒(méi)有新build的話,再次調(diào)試,就一定會(huì)假死,感覺(jué)這個(gè)問(wèn)題也太惡心了,都2005(vc8)了阿。
周翀 Email
2007/03/28 09:07
nicechao,vmware很多問(wèn)題解決不了的,呵呵。你在那上面調(diào)試一般程序可以,但是調(diào)用使用串口的、通用串口的就都不好使。而且那上面速度畢竟比較慢。

但最關(guān)鍵的是無(wú)法調(diào)試要用到通用串口的程序,或者你知道如何設(shè)置vmware使得能夠使用通用串口?我反正沒(méi)找到方法呵呵。
周翀 Email
2007/03/28 09:03
嗯,調(diào)試了5年VC程序了,從6到2003,這個(gè)問(wèn)題一直存在且太折磨人了。

呵呵。也早就發(fā)現(xiàn)這其實(shí)是個(gè)假死,我感覺(jué)應(yīng)該是GUI系統(tǒng)卡住了。卻一直沒(méi)有想起編這樣一個(gè)程序來(lái)輔助結(jié)束devenv.exe。謝謝你了。

不知道微軟自己怎么想這個(gè)問(wèn)題?我就奇怪怎么這么長(zhǎng)時(shí)間,一點(diǎn)官方說(shuō)法都沒(méi)有??不知道2005里是不是能夠修正這個(gè)問(wèn)題了。

我記得當(dāng)初用VC6時(shí),好像是裝了SP4后就好了?不過(guò)那是N年前的事了,也可能是我記錯(cuò)了。
nicechao
2007/01/29 15:12
用vmware裝個(gè)系統(tǒng),用VC的遠(yuǎn)程調(diào)試則完全無(wú)此問(wèn)題
sunss Email
2006/11/28 16:56
jq你的辦法我試過(guò)了,挺好用的,但是解決不了根本問(wèn)題,可以如下解決:在建立線程的那行代碼前設(shè)置斷點(diǎn),當(dāng)要執(zhí)行該線程時(shí),馬上F5。
jq Homepage
2006/10/25 15:27
看來(lái)是VC的調(diào)方式器有問(wèn)題?
根據(jù)我的經(jīng)驗(yàn),是在斷點(diǎn)處不能切換到主界面。
可以點(diǎn)中止調(diào)試(Shift F5),大約1分鐘會(huì)恢復(fù)主界面。
不點(diǎn)中止調(diào)試好象一直處于假死狀態(tài)。
不知為什么調(diào)方式器會(huì)造成整個(gè)系統(tǒng)的假死?
Yonsm 回復(fù)于 2006/11/28 21:22
是VC Debugger的問(wèn)題
路過(guò)
2006/03/15 15:38
自己寫(xiě)個(gè)程序監(jiān)視全局快捷鍵就好了,沒(méi)這么復(fù)雜,還弄個(gè)com。。。
Yonsm 回復(fù)于 2006/03/15 19:28
扯的,……此時(shí)系統(tǒng)停止對(duì)除Ctrl+Alt+Del之外的其它響應(yīng)了……
另外,這不是COM,只是我道出了兩個(gè)函數(shù)用來(lái)注冊(cè)和注銷(xiāo)Gina

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多