1
評估變量/功能我有以下代碼,在gdb
...
char* seg = mmap(0, ...)
printf("seg=%x\n", seg);
...
該程序打印與seg=b7ffd000
。而在gdb(執行相同)時,使用p/x seg
時,它會打印$2 = 0x0
。我很困惑。是不是一樣var seg
?爲什麼值不同。
PS:在mmap
中,第一個參數是映射內存的優先地址,返回值是映射內存的實際地址。
您是否在編譯時啓用了優化? – 2011-04-28 19:29:43
是的,當-O3被移除時,問題就消失了。對原因感興趣。像哪個值是內存的真實地址,啓用了優化... – Richard 2011-04-28 21:00:31