0
我有一個項目由多個*.cpp
文件組成,我使用g ++進行編譯。 我更改了一個源文件來添加一些代碼。再次構建項目。只是爲了檢查我做如何檢查linux二進制文件是否有新添加的代碼
diff -s origbinaryfile changedbinaryfile
這表明我的文件是相同的,因爲我已經添加了額外的代碼,並希望看到在生成的Linux程序的差異這是奇怪的。
我已經在現有的switch case
代碼中添加了代碼,這是額外的案例陳述。 前,我才
switch(x) {
case DEV1:
...
case DEV2:
...
更改一個是
switch(x) {
case DEV1:
...
case DEV2:
...
case DEV3:
DEV1
,DEV2
,DEV3
是一個enum聲明的枚舉。
如何使用nm
命令或任何其他命令驗證該附加代碼是否確實存在於二進制文件中?
還有其他方法嗎?
[這聽起來很傻,但我沒有仔細,以確保我沒有做任何錯誤編譯]
如果我添加一個僞代碼,如say int dummy = 0xDEADBEEF; dummy = dummy或一些這樣的sentinel數據或代碼,它們將以nm或字符串輸出顯示,而編譯器不會優化它 – goldenmean
可能工作。特別是如果不考慮性能/大小,並且可以禁用編譯器優化。 –