brk

    1熱度

    1回答

    我正在爲高校作業寫一個malloc函數。這是我的想法的基本佈局: 1)定義節點結構的指針到一個節點,下一節點,以及尺寸和空缺一個字符。堆中的每個區域將包含一個隱藏的節點和這個信息。 2)malloc函數。從第一個節點循環開始,通過每個節點檢查空位。如果一個節點是空的並且足夠大,則返回一個ptr到不包含該節點的區域的開始。如果沒有空間可用,請使用sbrk爲節點分配請求的空間PLUS空間。 3)免費功

    0熱度

    1回答

    我試圖通過更改brk將堆大小增加100,我不知道爲什麼我的代碼無法工作。 這裏是代碼的一部分,試圖做到這一點: movq $0, %rdi movq $12, %rax syscall movq %rax, InicialHeap movq InicialHeap, %rsi mov $str, %rdi call printf movq $100, %rdi movq $12

    4熱度

    1回答

    雖然我知道Unix系統調用brk和函數sbrk做什麼,但我不知道它們代表什麼。任何人都可以啓發我嗎?

    4熱度

    4回答

    int brk(void *end_data_segment); void *sbrk(intptr_t increment); 調用SBRK()與可以用來尋找程序中斷的當前位置的增量。 什麼是程序中斷?它從哪裏開始,0x00?

    1熱度

    1回答

    我有Magento網店,它運行cron作業來執行預定進程。其中之一是產品導入。它負責導入產品並將其分類。根據sql狀態,我可以看到這部分已經完成。它嘗試使緩存無效後。對於緩存,我試圖在socket上使用tcp或redis上的memcache。對於這兩個選項我都有相同的結果。我使用strace命令來查看它想要做什麼。 sudo strace -e trace=all -f -d -p 10319

    -1熱度

    1回答

    我發現並學習了x86 memory access segmentation fault,它不會在我的代碼中工作。不同之處可能在於我不使用單獨的.text和.data段,而是通過創建自定義ELF標題將所有內容保留在單個段中。這是否解釋了爲什麼SYS_BRK調用失敗? 該程序然後繼續通過使內存頁面讀/寫/執行等 我試圖找到說明問題的最小代碼示例。 在kdbg中,示例不起作用,但從命令行啓動時不起作用,

    0熱度

    1回答

    我想知道內核源代碼版本> = 2.6,其中brk已定義。那是哪個c文件包含它的定義? grep沒有透露太多。 glibc中還實現了sbrk是否正確?

    1熱度

    2回答

    我只是想知道發生了什麼記憶,通過一個BRK系統調用用戶程序的版本,然後再回來。內核是否清除它或者內容未定義? 我相信,內核將清除頁面時,他們通過新的分配BRK,但我不能工作,如果它歸零所有這些,如果返回的頁面,然後再次請求了。我正在瀏覽lxr.linux.no來試圖找出答案。我還會看看this後的建議書。 感謝您的回覆。 Tim

    0熱度

    1回答

    我試過BRK系統調用函數中添加此: void *addr = sbrk(0); printk("current-add-is-%p-\n", addr); 但它的內核編譯時返回的錯誤SBRK功能的隱式聲明。而我無法找到sbrk的定義! 我需要測量的是,無論何時某個用戶進程試圖擴展其程序中斷地址,我都會知道它當前的程序中斷地址,以便我可以測量有多少內存進程正在請求。 謝謝。