我需要查找幾個C函數的確切字節大小。 任何能夠分析gcc編譯器生成的.obj文件的實用程序的建議?C:分析.obj文件的實用程序,以精確字節度量某些函數的大小?
1
A
回答
4
我只有GCC v4在這裏進行測試,但我不認爲binutils的這個特殊功能最近已經改變。
test.c的:
int foo()
{
return 42;
}
編譯:
$ gcc -c test.c -o test.o
拆解:
$ objdump -D test.o
...
0000000000000000 <foo>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: b8 2a 00 00 00 mov $0x2a,%eax
9: c9 leaveq
a: c3 retq
...
(我們看到foo
位於地址0,該尺寸是0x000b字節)
證明在布丁:
$ nm -S test.o
0000000000000000 000000000000000b T foo
在地址0,大小0x000b。你在這。 ;-)
但是,要小心你想用這些數字做什麼。這是所有功能的大小,但可能有更多(例如全局數據對象)使功能正確運行。
相關問題
- 1. bash du以小數點後的字節大小精確到千分之一
- 2. 應用程序來分析文件夾的大小? c#.net
- 3. 使用精確大小的整數C++
- 4. iOS Obj-C:可以分配爲雙精度或字符串的變量對象?
- 5. 以兆字節獲取準確的文件大小?
- 6. C#的DataTable小數精度
- 7. imap_fetchheader字節與實際文件大小
- 8. 如何在大型C++程序中爲所有雙精度型數字設置小數精度
- 9. HTML分析器可以確定特定節點的字體大小
- 10. 激活函數的精確程度如何,其輸入量有多大?
- 11. 以更高的精度將數字寫入文件 - C++
- 12. Alllocate正確的字節數組大小
- 13. 這些雙精度值如何精確到20位小數?
- 14. 只分析Java應用程序的某些部分/類
- 15. 如何刪除文件大小小於某個特定大小的文件夾中的所有文件(字節)
- 16. wget分析文件大小
- 17. Obj-C controller.view.frame獲取實際大小
- 18. 禁用某些文件夾中的某些命令/程序?
- 19. 大小以字節
- 20. Android中的應用程序數據庫文件大小爲0字節?
- 21. C中的精確數字?
- 22. 只複製某些文件和文件夾的程序C#
- 23. 將內容高度設置爲精確的字體大小
- 24. 全角度的C++ sqrt函數精度
- 25. 解析C++中的文件,而忽略某些字符
- 26. 如何確定使用NSURLConnection下載文件的大小(以字節爲單位)?
- 27. 爲什麼某些用戶定義的C++函數不適用於大數字?
- 28. obj-c/ios中可以存儲128千字節的字符數?
- 29. C#小數精度功能
- 30. 在java中保留精確到小數位的精確度
如果您找不到,可以通過簡單地註釋掉代碼並重新編譯來做「二元砍」,並對文件大小進行區分。 – 2011-02-25 04:27:15
使用地圖文件。 – 2011-02-25 04:54:07
@Merlyn:如果編譯器執行死代碼去除靜態函數和數據(大部分在優化模式下執行,並且在調試模式下測量任何內容都毫無意義),那麼這可能會影響其他各種依賴項。 – 2011-02-25 05:31:11