簡體   English   中英

使用Visual Studio 2010調試與匯編代碼鏈接的C代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM