目前我正在開發嵌入式項目。我使用的是IAR Embedded Workbench IDE,目標平臺是基於8051的微控制器。是否可以使用Valgrind工具來檢查我寫的代碼?在嵌入式項目中使用Valgrind
回答
不,並且是*。 No:正如另一位評論者所說,Valgrind不能在8051體系結構上運行,所以你不能像在x86系統上那樣使用Valgrind。
是*(星號(*),是因爲它是一個有限的 「是」)
但是你可以,如果你在你的代碼的非8051/IAR-特定部分使用Valgrind的:
- 從體系結構/編譯器不可知的代碼中分離8051特定的和IAR特定的代碼。
- 您可能會想要這樣做,因此代碼不會因分離不可知代碼而變得更大。 (我假設的代碼大小是非常珍貴的,因爲你上的8051工作)
- 用gcc編譯架構/編譯器無關的代碼和你的臺式機/筆記本電腦的開發機器上使用Valgrind的運行它,它可能是一臺x86機器。
- 當然,您可以使用任何其他Valgrind支持的架構/編譯器,x86/gcc不是您唯一的選擇。
這樣Valgrind的就可以檢查你的一些代碼,這是聊勝於無的。
而分離代碼的編譯器/芯片特定部分也將使它更具可移植性和可重用性。
哦,這是沒有直接關係,但你也應該考慮使用像PC - 皮棉的靜態分析程序:http://www.gimpel.com/html/index.htm
它檢查一些事情,Valgrind的檢查,很多東西Valgrind的不檢查。此外,它將檢查您的代碼的全部,而不僅僅是非8051/IAR代碼。
有很多類似的工具; PC-Lint是我見過的最流行的。
沒有。當然,您可以隨時在其他體系結構上檢查您的代碼是否存在常見錯誤,但可能找不到某些與體系結構相關的問題。對我來說,我發現了一個endian的bug。在Linux 32/64位中,Valgrind沒有任何問題。但是,這是Sun SPARC上的一個問題。 – jclin
這就是我所說的「這樣Valgrind就能夠檢查你的一些代碼,這比沒有好。」由於您運行在不同的體系結構上,因此不會發現與8051相關的體系結構問題。 – svec
我想你應該知道8051是什麼。它是一個微控制器,不是通用的CPU。它不會有全功能的操作系統,許多操作都是通過直接的IO和硬件中斷和/或使用非常小的RTOS來完成的。因此,大部分爲8051編寫的程序都無法在使用GCC的通用操作系統上編譯和運行,所以我認爲不可能在Valgrind下檢查8051內存問題。 – jclin
您應該檢查此頁,Valgrind Supported Platforms。 Valgrind不支持8051微控制器指令集。
此外,你應該知道Valgrind是一個指令模擬器。這意味着您必須在系統上運行Valgrind,並使用C或其他POSIX庫的OS和基礎層來運行代碼,以模擬程序的內存讀/寫或分析。所以8051不可能運行Valgrind。
- 1. 在嵌入式項目中使用talloc
- 2. 在共享項目中使用嵌入式圖像
- 3. 在嵌入式WebView的Android Cordova項目中使用Crosswalk
- 4. 如何在Java項目中添加/使用嵌入式SQLite?
- 5. 如何在嵌入式系統上使用Valgrind在MIPS上運行GHS編譯代碼的項目?
- 6. 用mongodb在一個sails項目中查詢嵌入式集合
- 7. 嵌入式系統linux項目
- 8. Morphia添加項目到嵌入式
- 9. 嵌入式錯誤:分析c#項目
- 10. VisualGDB嵌入式項目錯誤
- 11. 項目 - 嵌入式IOC容器
- 12. 初級嵌入式系統項目?
- 13. 任何使用Python進行嵌入式項目的人?
- 14. 使用嵌入式服務器的Netbeans項目
- 15. 在JTextPane中選擇嵌入項目
- 16. 在故事板項目中嵌入cocos2d
- 17. 在WPF中嵌入項目圖標
- 18. 需要使用dll作爲嵌入式資源包含在項目中
- 19. 使用Monotouch 4.2在圖庫項目中嵌入圖像?
- 20. 狩獵嵌入式系統內存泄漏的valgrind沒有(或使用最少的valgrind型應用程序)
- 21. 在另一個項目中獲得嵌入式資源
- 22. 如何在網站項目中創建嵌入式資源?
- 23. 在多級嵌入式數組中匹配項目
- 24. 在我的XCode項目中從嵌入式UITableView
- 25. 如何在GAE的django項目中嵌入開源項目?
- 26. 在當前項目中嵌入另一個項目
- 27. 在Jinja中使用嵌入式HTML呈現WTForms SelectField選項
- 28. 在嵌入式Linux中使用ZFS
- 29. 在嵌入式Lua中使用cjson C++
- 30. 在Webresource.axd中使用嵌入式WebResources
你問過valgrind用戶郵件列表嗎?你檢查過http://valgrind.org/嗎? – NWS
您應該檢查此頁面,Valgrind支持的平臺[1]。不支持8051微控制器指令集。 [1]:http://valgrind.org/info/platforms.html – jclin
@jclin發表您的評論作爲答案。 – Ross