Visual Studio快捷鍵介紹和高級(jí)玩法

既然使用IDE,我想更多的看重的是它的調(diào)試和定位功能。其他的快捷鍵需要自己慢慢探索。微軟不太好的地方是vscode和studio的快捷方式不太一樣。

調(diào)試

  • 調(diào)試(啟動(dòng)):F5;
  • 調(diào)試(重新啟動(dòng)):使用組合鍵“Ctrl+Shift+F5”;
  • 調(diào)試(開(kāi)始執(zhí)行不調(diào)試):使用組合鍵“Ctrl+F5”;
  • 調(diào)試(逐語(yǔ)句,步入):F11;
  • 調(diào)試(逐過(guò)程,步過(guò)):F10;
  • 設(shè)置斷點(diǎn):F9。
  • 退出當(dāng)前過(guò)程: Shift+F11
  • 編譯: F7

如果遇到庫(kù)函數(shù),想看看庫(kù)函數(shù)的實(shí)現(xiàn),怎么辦? 舉個(gè)例子memset函數(shù),很常見(jiàn)的一個(gè)函數(shù)。
(1) F9在memset處設(shè)置斷點(diǎn)
(2) Debug運(yùn)行程序
(3) 到達(dá)斷點(diǎn),查看memset的反匯編

memset(&appBaseMem, 0, sizeof(appBaseMem));
00600645  push        0Ch  
00600647  push        0  
00600649  lea         eax,[appBaseMem]  
0060064C  push        eax  
0060064D  call        _memset (024571FCh)  
00600652  add         esp,0Ch

(4) F11步進(jìn)_memset

024571FC  jmp         dword ptr [__imp__memset (1855A5B4h)]

(5)繼續(xù)F11

583750E0  mov         ecx,dword ptr [esp+0Ch]  
583750E4  movzx       eax,byte ptr [esp+8]  
583750E9  mov         edx,edi  
583750EB  mov         edi,dword ptr [esp+4]  
583750EF  test        ecx,ecx  
583750F1  je          58375233  
583750F7  imul        eax,eax,1010101h  
583750FD  cmp         ecx,20h  
58375100  jle         583751E5  
58375106  cmp         ecx,80h  
5837510C  jl          5837519D  
58375112  bt          dword ptr ds:[5838731Ch],1  
5837511A  jae         58375125  
5837511C  rep stos    byte ptr es:[edi]  
5837511E  mov         eax,dword ptr [esp+4]  
58375122  mov         edi,edx  
58375124  ret

可以逐步調(diào)試匯編代碼,查看寄存器的值。也可以查看內(nèi)存的值,函數(shù)的調(diào)用堆棧等,超級(jí)強(qiáng)大。

在這里插入圖片描述

從第(4)->第(5)經(jīng)歷了什么,后續(xù)會(huì)專(zhuān)門(mén)講解,這里涉及到windows下庫(kù)函數(shù)定位。

定位

  1. 轉(zhuǎn)跳到定義:F12;
  2. 查找所有引用:使用組合鍵“Shift+F12”

搜索功能

CTRL+F
全局查找

在光標(biāo)所在行的上面或下面插入一行

  • 組合鍵“Ctrl+Enter”:在當(dāng)前行的上面插入一個(gè)空行;
  • 組合鍵“Ctrl+Shift+Enter”:在當(dāng)前行的下面插入一個(gè)空行。

寫(xiě)在最后

Visual Studio的功能非常強(qiáng)大,要比Android Studio的功能強(qiáng)大很多,幾乎涵蓋了編程的方方面面,甚至調(diào)試windows內(nèi)核也是可以的(本質(zhì)上還是集成windbg),能夠取代windbg。不過(guò)Visual Studio體積太大,如非必要,可能用不到這么大的工具,畢竟殺雞不必用牛刀,但是殺牛就要用牛刀了。

公眾號(hào)

更多內(nèi)容,歡迎關(guān)注我的微信公眾號(hào):無(wú)情劍客。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容