最近學習c++的時候用VS調用反匯編感覺學習效率和理解能力飛速提升,而且對於自己理解代碼底層原理和運行邏輯有很大幫助。
於是在想能不能用VScode看到c的反匯編代碼。
(最開始用的devc++可是出現了一直無法解決的win10中文亂碼問題,然后在網上看到VScode改一些task.json和launch.json的東西就可以解決,才把devc++卸載轉戰VScode)
(然后VScode寫c++和c的時候苦於不能看到反匯編,上網查找發現VS可以看於是去下載VS調試看反匯編,可是VS有不太能運行c,於是絞盡腦汁找VScode查看反匯編的方法)
終於皇天不負有心人,在瀏覽貼吧帖子https://tieba.baidu.com/p/6497009192的時候給到啟發,去看了CSDN的文章
https://blog.csdn.net/JCMLSY/article/details/114319998
但是不知道在哪里輸入它的代碼,於是又回貼吧看圖突然恍然大悟,下面把具體流程和常見代碼說一下。
首先我用的是這段代碼(anyway,不用管)
#include <stdio.h> #include <stdlib.h> typedef struct Person { char name[64]; int age; /* data */ }Person; typedef struct Animal { char name[64]; int age; int type; /* data */ }Animal; void PersonEat(Person* person){ printf("%s在吃人吃的飯!\n", person->name); } void AnimalEat(Animal* animal){ printf("%s在吃動物吃的飯!\n", animal->name); } int main(){ Person person; strcpy(person.name, "小明"); person.age = 30; AnimalEat(&person); system("pause"); return 0; }
國際慣例,gcc.exe運行生成任務文件,(我這段用g++會生成錯誤信息,可能無法進入調試階段,因為就是c++無法運行但是c可以運行的:))
這是g++.exe的運行結果。
這是gcc.exe生成的結果。
然后打斷點:
然后運行-啟動調試
下面的四個窗口:問題/輸出/調試控制台/終端中,調試的時候一般是終端,這時候我們需要進入調試控制台輸入命令:
得到反匯編結果:
還可以輸入

總之就是CSDN老哥的命令在調試控制台運行就可以了。