0
我一直在iOS的問題摔跤造成不正確的分配,從malloc獲得的內存比我應該有一個CPP對象少。我最近發現這是由於兩個翻譯單元包括相同的標題,其中一個翻譯單元沿其包含鏈的幾個出現#pragma pack
。如何追溯#pragma pack?
現在,我不確定如何正確追溯到哪個文件正在使用它,並確保它修復它。我添加了一堆#pragma pack(show)
,並從頂部確定了違規文件(違規文件是導致其他文件具有相同包設置爲1的文件)。我已經在Xcode中打開了該文件並對其執行預處理。
在大多數情況下,它看起來像代碼設置打包默認(arm64上的8)。是否有任何工具可以幫助驗證哪些是鏈中的罪犯?
我只有一個提示(包1的情況下,該包被設置爲),它是iOS SDK的頭文件。但即使它看起來沒問題。
# 54 "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/include/sys/kauth.h" 2 3 4
#pragma pack(1)
typedef struct {
u_int8_t sid_kind;
u_int8_t sid_authcount;
u_int8_t sid_authority[6];
u_int32_t sid_authorities[16];
} ntsid_t;
#pragma pack()