有沒有什麼辦法讓在運行時在C代碼的源代碼行數? 它背後的想法是,假設一個軟件是用純C語言編寫的。 .exe文件分發給誰知道任何有關C.現在,如果有任何錯誤,用戶,用戶可以看到該行號和錯誤報告給製造商,以便調試可以在製造商的網站來完成。我只是在運行時調試運行時錯誤並在源代碼中獲取相應的行號。我是這些東西的初學者。有沒有辦法在運行時用C代碼獲取源代碼行號?
2
A
回答
2
改爲使用gdb。但我想它會工作:
if(someThingsWrong())
printf("wrong at line number %d in file %s\n", __LINE__, __FILE__);
3
如果您正在使用的GCC編譯器,你可以使用標準的預定義宏 - __LINE__
作爲行號佔位符。
編譯器將填補行號在編譯時。
如: -
printf("%d",__LINE__);
+1
'__LINE__'宏不是特定於GCC的。 –
2
您可以使用內置的宏__LINE__
和__FILE__
,它總是擴展到當前文件名和行號。
#include <stdio.h>
int main(int argc, char *argv[])
{
if(argc<2)
{
printf("Error: invalid arguments (%s:%d)\n", __FILE__, __LINE__);
return 0;
}
printf("You said: %s\n", argv[1]);
return 0;
}
+1
'__FILE__'和'__LINE__'是,與一些其他一起,其實強制性宏。參見C11§6.10.8.11。 –
相關問題
- 1. 有沒有辦法在Go中獲取源代碼文件名和行號?
- 2. 執行代碼時有沒有辦法獲得當前行號? C#
- 3. 有沒有辦法在Objective-C中自動運行代碼?
- 4. 有沒有辦法在運行時獲取類的字節碼?
- 5. 程序集加載時有沒有辦法運行代碼?
- 6. 有沒有辦法在mysql中運行異常代碼
- 7. 有沒有辦法在ipython筆記本中運行scala代碼?
- 8. 有沒有辦法在python中運行powershell代碼
- 9. 有沒有辦法在mac上運行opencl內核代碼
- 10. 有沒有辦法調試在`multiprocessing.Process`上運行的Python代碼?
- 11. jsFiddle代碼沒有運行?
- 12. JavaScript代碼沒有運行
- 13. jQuery代碼沒有運行
- 14. NSArray代碼沒有運行
- 15. ontouchListener代碼沒有運行?
- 16. 代碼沒有運行
- 17. 代碼塊沒有運行
- 18. Python沒有運行代碼
- 19. Java代碼沒有運行
- 20. 有沒有辦法從JavaScript運行R代碼?
- 21. 有沒有辦法運行Javac關閉代碼生成?
- 22. LibSerial C++代碼不運行沒有Cutecom
- 23. C代碼沒有按預期運行
- 24. 運行沒有生根的C代碼
- 25. 在Jupyter筆記本接口中,有沒有辦法在選定的代碼行之前運行所有代碼?
- 26. 有沒有什麼辦法可以用itext的資源獲取源代碼
- 27. 獲取運行時運行的所有R代碼
- 28. 吱吱聲:在運行時獲取方法的源代碼
- 29. JS運行後獲取源代碼
- 30. 在C#中,有沒有辦法在運行時訪問源代碼中的xml註釋(VS中的標籤)?
是不是不夠好編譯調試符號和運行代碼在調試器像gdb? –
這是一個可以解答你的具體問題的模塊。但正如第一條評論指出的那樣,更好的調試方式是使用調試器。 – kaylum
我在運行時詢問行號。你能解釋一下嗎?我是編碼初學者 –