這裏的東西不那麼重要了,我最近一直在沉思一下:Discover程序在內存中的圖像
我知道,我的程序的虛擬地址空間包含(每個線程)的棧和堆和一些靜態分配內存等等。但是它是否包含程序的所有圖像?是否有可能以某種方式(無論平臺如何依賴這個技巧)找出我自己的圖像的地址範圍?內存是隻讀的嗎?
總之:我可以製作一個打印自己的程序嗎?
如果無法完成,問題會更少,我可以打印自己的堆棧嗎?我想是這樣的:
const char * BASE;
void print_stack();
int main(int argc, char * argv[]) {
BASE = &argc;
/* do stuff */
print_stack();
return 0;
}
void print_stack() {
int sentinel;
const char * bottom = &sentinel;
while (bottom < BASE)
printf("%02X ", *bottom++);
}
@Joe:謝謝,我從來不知道''! –