[英]Debug C code linked with Assembly code with Visual Studio 2010
我正在嘗試將在匯編中開發的具有.s擴展名的功能鏈接到C代碼主程序main.c
我需要調試匯編例程以查看堆棧和寄存器。 我該怎么做?
int main() {
char str[] = "remembering toUpperSelective exercise..";
const char* findChars = "re";
int result = toUpperSelective(str, findChars);
printf("Result Expected is %d and got %d \n", 14, result);
printf("Printing result: %s \n", str);
getchar();
return 0;
}
我怎么說編譯器在X位置搜索並停止拋出此錯誤? (鏈接)
當然,您可以在C代碼中使用匯編語言命令(單個或塊式)。 查看用於運行匯編語言指令的ASM C函數。
我不確定斷點是否可以內聯匯編語言工作。 您可以做的是定義一個常規函數。 在該函數內,使用ASM Assembly塊編寫程序集。 如果代碼很復雜,並且您真的想調試它,請使用ASM語言單獨進行測試。 可能是您需要一個用於所用處理器的模擬器。 您能指出ASM到底要做什么嗎?
我知道這不是正確的答案,但至少它將使您走上正確的道路。
Visual Studio並沒有使用匯編器。 這意味着您可以使用C編譯器的內聯匯編程序功能,也可以安裝單獨的匯編程序。
如果使用單獨的匯編器,則必須將源添加到項目中,並為其創建自定義構建規則,以使用正確的標志調用匯編器。 然后,Visual Studio將能夠處理實際的鏈接。 至於調試,Visual Studio調試器能夠顯示目標代碼中的匯編器代碼,但是您選擇的匯編器必須以Visual Studio可以識別的格式輸出調試信息,如果您希望能夠正確看到所有標簽等。
好的。 我曾嘗試在Visual Studio上執行此操作,但是在嘗試使用Insight調試器之前,在Windows平台上沒有任何成功。
在此之前,我在StackOverflow中提出了另一個問題,但是我已經實現了我想要的。 線程在這里 。
我將程序集與C代碼鏈接在一起,並在Insight C + My Assembly例程中進行調試。 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.