我的一個朋友在試圖調試開始顯示「對齊陷阱」錯誤的代碼時遇到了大問題。全局結構由特定函數訪問時發生問題。「對齊陷阱」錯誤的含義是什麼?
經過對網絡的一些研究後,它仍不清楚「對齊陷阱」的含義是什麼。有人能給出一個解釋,特別注意通常會導致對齊陷阱的原因,以及通常會如何解決問題(不僅僅是關於如何使用調試器,還包括問題本身)?
這一切都是在帶有嵌入式Linux的ARM處理器(OMAP L138)中的C代碼中完成的。
注意:我不是想用這個答案得到一個針對錯誤的解決方案建議,但是,正如問題標題所暗示的那樣,理解什麼是「對齊陷阱」錯誤意味着什麼。這就是爲什麼我不打算放置源代碼或類似的東西。
請添加定義結構和訪問功能的代碼。 – user694733 2014-10-20 11:19:25
@ user694733嗯,我不確定這是否會使它偏離主題。我並不是在尋求針對這個問題的針對錯誤的解決方案,而是爲了理解「對齊陷阱」意味着什麼以及它將如何被普遍解決的一般想法(Basile提供的答案正是我所想到的,回答這個問題)。在我讀到巴西爾的回答後,我只提到了結構性的東西來縮小範圍,並注意到這是一個相當廣泛的錯誤。 – Momergil 2014-10-20 11:26:01
夠公平的。 Basiles的回答幾乎涵蓋了它。我個人會首先調查任何可能隱藏編譯器警告/錯誤的指針。這聽起來像一個天真的反序列化代碼。 – user694733 2014-10-20 11:35:38