brk

    0

    1答えて

    brkを変更してヒープサイズを100ずつ増やそうとしていますが、なぜコードが機能しないのかわかりません。ここ はそれを行う試みるコードの一部です: movq $0, %rdi movq $12, %rax syscall movq %rax, InicialHeap movq InicialHeap, %rsi mov $str, %rdi call printf movq $1

    4

    1答えて

    私は、Unixシステムがbrkと呼び、何の機能も持っていないことを知っていますが、私はそれらが何を表しているのか分かりません。誰も私を啓発することはできますか?

    0

    2答えて

    誰かがこの「無限の」ループを素早くsegfaultsする理由を説明できますか?例えば は、我々はこの機能を持っているとしましょう: #!/bin/bash foo() { foo }; foo これは8-10秒後にセグメンテーションフォールト。 straceのを経由して調べる、我々はBRK(の多くを見ることができます)呼び出し: brk(0x2e11000) = 0

    -1

    1答えて

    x86 memory access segmentation faultが見つかりました。私のコードでは機能しません。おそらく、私は別々の.textと.dataセグメントを使用せず、カスタムELFヘッダーを作成することですべてを1つのセグメントに保持するという違いがあります。 SYS_BRK呼び出しが失敗する理由を説明していますか? メモリページの読み込み/書き込み/実行などを行い、プログラムを続

    1

    1答えて

    sbrkの仕組みを理解しようとしています。 int main() { printf("end of the break : %p\n", sbrk(0)); printf("end of the break : %p\n", sbrk(10)); printf("new end of the break : %p\n\n", sbrk(0)); } この出力:

    0

    1答えて

    brkが定義されているカーネルソースバージョン> = 2.6で知りたいことがあります。それはどのcファイルにその定義が含まれていますか? grepはあまり公開されていません。また、sbrkはglibcで正しく実装されていますか?