[英]When -lm is linked statically, segmentation fault on run time - dumps core on 14.04.1 LTS on 64 bit AMD
[英]Segmentation fault in 64-bit AMD64 mode
我試圖理解以下悖論:
我正在64位Linux上運行程序。 因此該程序以64位模式(AMD64長模式的子模式)運行,對嗎? 但是這種模式沒有分段,只有分頁。 那為什么下面的代碼會產生分段錯誤?
int main() {
int* ptr = (int*)0xABCDABCDABCD;
*ptr = 10;
return 0;
}
無論底層的分頁技術如何,都將其稱為分段錯誤。 這意味着(通常)您已嘗試在允許的范圍(您的段)之外訪問內存,它可能被稱為塊,塊,節,memlim,xyzzy,plugh或其他任何術語。
盡管實際上在語言中沒有“指針”,但實際上與在Java中獲得空指針異常時的情況一樣::)
在UNIX(SIGSEGV)中表明這一點的信號早於英特爾為我們提供了原始x86芯片的分段架構之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.