Описание тега brk
NoneBrk () и sbrk() изменяют местоположение прерывания программы, которое определяет конец сегмента данных процесса (т. е. прерывание программы - это первое место после конца неинициализированного сегмента данных).
5
ответов
Что такое разрыв программы? Откуда это начинается,0x00?
int brk(void *end_data_segment); void *sbrk(intptr_t increment); Вызов sbrk() с шагом 0 может быть использован для определения текущего местоположения остановки программы. Что такое разрыв программы? Откуда это начинается,0x00?
14 июн '11 в 01:27
1
ответ
Почему возвращаемое значение первого sbrk отличается от последующих вызовов?
Я пытаюсь понять, как работает память в C, поэтому экспериментирую с sbrk функционировать сейчас. я знаю это sbrk(0) должен вернуть текущий разрыв программы, то есть конец сегмента данных. Я попытался позвонить sbrk(0) несколько раз, и по какой-то п…
27 янв '19 в 22:42
1
ответ
Не могу изменить размер кучи AMD64
Я пытаюсь увеличить размер кучи на 100 путем изменения brk, и я не знаю, почему мой код не работает. Вот часть кода, которая пытается это сделать: movq $0, %rdi movq $12, %rax syscall movq %rax, InicialHeap movq InicialHeap, %rsi mov $str, %rdi call…
19 июн '16 в 05:35
1
ответ
Источник ядра - в каком файле определен brk()
Я хотел бы знать в исходной версии ядра>= 2.6 где brk определено. То есть какой файл c содержит его определение? grep не раскрывая много. Также sbrk реализован в glibc правильно?
25 апр '12 в 09:42
2
ответа
Как найти текущее место разрыва программы
Я попытался добавить это внутри функции системного вызова brk: void *addr = sbrk(0); printk("current-add-is-%p-\n", addr); Но он вернул ошибку во время компиляции ядра, что неявное объявление функции sbrk. И я не смог найти где определяется sbrk!! В…
07 мар '16 в 16:38
1
ответ
brk(0) занимает слишком много времени?
Это вывод strace -T -ttt -ff -x -y -o pid.trace -p 2145, Трассировка приведена ниже. 1503431273.934716 semop (1204093022, {{0, 1, SEM_UNDO}}, 1) = 0 <0,000004> 1503431273.934737 clock_gettime(CLOCK_REALTIME, {1503431273, 934741536}) = 0 <0,000004> 1…
23 авг '17 в 18:25
4
ответа
Как sbrk/brk реализован в Linux?
Я думал о том, как ядро Linux реализует системные вызовы, и мне было интересно, может ли кто-нибудь дать мне общее представление о том, как работает sbrk / brk? Я просмотрел код ядра, но его так много, и я его не понимаю. Я надеялся на резюме от к…
15 июн '09 в 17:50
2
ответа
Несколько вызовов malloc для внутреннего вызова mmap только один раз
Когда я пытаюсь выполнить приведенный ниже код, я не могу четко проанализировать внутренние вызовы malloc api. Что мне непонятно, так это системный вызов, mmap вызывается только один раз для 2 или более вызовов malloc. Если я также назначаю более 40…
15 июн '16 в 08:37
1
ответ
Расщепление sbrk на 2
Чтобы перекодировать функцию malloc, я делаю sbrk(stack) где: void *malloc(size_t size) { stack = 0; while (stack < size) stack += 4096; } Я всегда использую malloc больше, чем мне нужно, поэтому я хочу взять часть этой выделенной области размера…
01 фев '17 в 13:16
1
ответ
Что обозначают brk и sbrk?
Пока я знаю, что называют системной Unix brk и функция sbrk делаю, я понятия не имею, что они стоят. Кто-нибудь может просветить меня?
28 июл '11 в 22:43
1
ответ
Мнения и предложения, касающиеся моего подхода к первичной подгонке функции malloc
Я пишу функцию malloc для назначения в колледже. Вот основная схема моей идеи: 1) Определить структуру узла с указателями на предыдущий узел, следующий узел, а также символ для размера и вакансии. Каждый регион в куче будет содержать скрытый узел с …
06 июл '12 в 04:22
0
ответов
Strace обнаруживает вызовы brk, но GDB не останавливается на точке останова
Я пытался отладить утечки памяти в течение довольно долгого времени. Моя главная проблема не в том, что я не могу использовать подходящие инструменты, такие как Valgrind и тому подобное, поэтому я остановился на простой GDB + strace. Моя программа -…
31 окт '16 в 14:41
2
ответа
Очищается ли память ядром Linux, когда brk уменьшается, а затем снова увеличивается?
Мне просто интересно, что происходит с памятью, которую пользовательская программа освобождает через системный вызов brk, а затем возвращается обратно. Ядро очищает его или его содержимое не определено? Я полагаю, что ядро очищает страницы, когда …
25 авг '09 в 10:04
1
ответ
Где на самом деле начинается выделенная память, когда я использую системный вызов brk
Я пытаюсь выделить немного памяти, используя sys_brk в сборке NASM/x86. sys_break возвращает новый адрес разрыва, который является концом сегмента данных, верно? Так где же находится моя вновь выделенная память? Я предположил, что он находится между…
01 окт '15 в 10:22
1
ответ
Используя brk, чтобы получить brk_start
Руководство для int brk(void *end_data_segment); говорит: "brk() устанавливает конец сегмента данных на значение, указанное в end_data_segment" В случае успеха возвращается 0 или -1. Но как мне получить значение инициализации моего перерыва (наприме…
13 янв '13 в 19:39
1
ответ
Длительный процесс отладки. Страс, брк
У меня есть интернет-магазин Magento, он запускает задания cron для выполнения запланированных процессов. Одним из них является импорт продукции. Он отвечает за импорт товаров и их распределение по категориям. В соответствии с состоянием sql я вижу,…
21 ноя '14 в 10:59
2
ответа
Сегменты ошибок Bash на brk()
Может кто-нибудь объяснить, почему этот "бесконечный" цикл segfaults быстро? Например, допустим, у нас есть эта функция: #!/bin/bash foo() { foo }; foo Это происходит через 8-10 секунд. Изучая через strace, мы видим много вызовов brk(): brk(0x2e1100…
28 дек '17 в 16:27
1
ответ
Как работает sbrk()?
Я пытаюсь понять как 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)); } Это выводит: end of break : 0xaa6000…
28 янв '17 в 18:53
1
ответ
Поднятие BRK в сборке на i386 Linux
Я нашел и изучил ошибку сегментации доступа к памяти x86, и она не будет работать в моем коде. Возможно, разница в том, что я не использую отдельные сегменты.text и.data, но держу все в одном сегменте, создавая собственный заголовок ELF. Это объясня…
03 апр '16 в 14:15
9
ответов
Что делает системный вызов brk()?
Согласно руководству для программистов Linux: brk () и sbrk() изменяют место остановки программы, которое определяет конец сегмента данных процесса. Что здесь означает сегмент данных? Это просто сегмент данных или данные, BSS и куча вместе взятые? С…
08 авг '11 в 20:57