Вопросы по теме 'stack-frame'

Вопрос о фрейме стека: Java против C++
Q1. В Java все объекты, массивы и переменные класса хранятся в куче? Верно ли то же самое для C++? Является ли сегмент данных частью кучи? Как насчет следующего кода на C++? class MyClass{ private: static int counter;...
1896 просмотров
schedule 31.07.2023

ENTER и LEAVE в сборке?
Я читал Искусство языка ассемблера (Рэндалл Хайд, ссылка на Amazon ), и я попробовал консольное приложение из этой книги. Это была программа, которая создавала себе новую консоль, используя функции Win32 API. Программа содержит процедуру LENSTR...
40268 просмотров
schedule 20.08.2023

Пытаемся понять параметр gcc -fomit-frame-pointer
Я попросил Google дать мне значение параметра gcc -fomit-frame-pointer , который перенаправляет меня к приведенному ниже утверждению. -fomit-frame-pointer Не храните указатель фрейма в регистре для функций, которым он не нужен. Это...
69741 просмотров
schedule 17.03.2023

Базовая структура кадров стека
В настоящее время я играю, изучая кадры стека, пытаясь понять, как это работает. После прочтения нескольких статей, которые всегда объясняли, что общая структура будет следующей: локальные переменные ‹--- SP младший адрес старый BP ‹--- BP...
1180 просмотров
schedule 12.09.2023

Доступ к фреймам стека на языке ассемблера
Я новичок в сборке, и тут я наткнулся на эту статью он говорит, что этот код void MyFunction() { int a, b, c; a = 10; b = 5; c = 2; эквивалентно этому push ebp ; save the value of ebp mov ebp, esp ; ebp now points to the...
3535 просмотров
schedule 24.06.2022

Как D позволяет использовать делегаты в качестве параметров шаблона?
В книге «Язык программирования D» Андрея Александреску, есть пример, когда делегат берется в качестве параметра шаблона: T[] find(alias pred, T)(T[] input) if(is(typeof(pred(input[0])) == bool)) { for(; input.length > 0; input = input[1 .....
524 просмотров
schedule 09.03.2022

Копирование массива во фрейм стека на языке ассемблера
Скажем, мне нужно скопировать и поместить в массив, назовите его X, во фрейм стека. а затем отобразите этот кадр стека на экране перед выходом из процедуры. Как мне скопировать этот массив в кадр стека. Я придумал это, но это не работает....
147 просмотров
schedule 29.06.2023

Переносимая функция на C (без ассемблера), которая возвращает размер фрейма стека
Напишите переносимую функцию на C (без ассемблера), которая возвращает размер фрейма стека. int stackframe_size() { } Попытка решить ее, как показано ниже. Эта функция возвращает 228 байт при компиляции с VS 2010. Есть ли способ проверить ее...
184 просмотров
schedule 26.09.2022

Статические глобальные переменные и глобальные переменные C
У меня есть программа ниже. Если я объявлю переменные a, b, c статическими глобальными переменными, это приведет к ошибке сегментации, но если я объявлю их нестатическими глобальными или локальными переменными, это не приведет к ошибке сегментации....
367 просмотров
schedule 24.07.2022

КАК получить правильный указатель кадра произвольного потока в iOS?
Способ получить указатель кадра В демонстрационном приложении, работающем на устройстве iPhone 5s / Xcode 7, я попытался получить frame pointer из произвольного потока, используя thread_get_state , но всегда приводит к неверному...
1272 просмотров
schedule 10.07.2023

Как я могу принудительно обновить словарь Python locals () для другого кадра стека?
В Python 2 (не уверен насчет 3) словарь locals обновляется только тогда, когда вы действительно вызываете locals (). Так, например, l=locals() x=2 l['x'] терпит неудачу, потому что l не содержит ключа "x", но l=locals() x=2 locals()...
1052 просмотров

Ссылка на возвращаемое значение функции
Я запутался, гарантированно ли в следующем фрагменте foo действительность, т. е. разрешено ли мне хранить возвращаемые значения функции в виде константных ссылок? Я спрашиваю, потому что возвращаемое значение хранится в кадре стека, что может...
753 просмотров
schedule 08.10.2023

mips указатель кадра ($fp) глобальный указатель
в этом примере с C на MIPS указатель кадра MIPS ($fp) занимает одно слово (4 bytes ), но какая польза от остальных 4 байтов, которые gcc решил выделить в кадре стека основной функции, это глобальный указатель $gp?
732 просмотров
schedule 26.07.2023

Сохраняются ли регистры стекирования ARM Cortex-M0 в $ psp или $ msp во время аппаратного сбоя?
У меня проблема, связанная с серьезной неисправностью моего Cortex-M0, поэтому я пытаюсь отладить ее. Я пытаюсь распечатать содержимое регистров ядра ARM, которые были помещены в стек при возникновении аппаратной ошибки. Вот мой базовый код...
728 просмотров
schedule 02.04.2022

Следующая команда GDB выполняет переход назад ко всем объектам, размещенным в стеке, в конце области видимости.
Когда у меня есть выделенные в стеке объекты в области (набор команд в фигурных скобках) и я использую next в конце этой области, gdb возвращается туда, где находится каждый из выделенных в стеке объектов, в обратном порядке. Это беспокоит во...
243 просмотров
schedule 07.06.2022

Выравнивание стека — тестирование переполнения буфера
Я провел много исследований, пытаясь понять эту тему, но все еще имею некоторую путаницу. В настоящее время я исследую переполнение буфера. Вот пример функции, на которую я смотрю: int testFunction(char* sourceBuffer) { unsigned char result...
708 просмотров

C Повреждение переменной стека переключения контекста
Я пытаюсь реализовать пользовательские потоки в C, создав простую функцию переключения контекста и планировщик FCFS. Первый шаг, который я хочу выполнить, — это скопировать весь фрейм стека функций в кучу в сохраненный фрейм и заменить его первым в...
117 просмотров
schedule 28.04.2023

Есть ли разница между отправкой регистров до создания фрейма стека или после?
Предположим, у меня есть функция с именем func: PROC func: ;Bla bla ret ENDP func Теперь предположим, что я использую, например, регистры ax и bx , поэтому, чтобы сохранить их начальное значение, я помещаю их в стек внутри функции....
335 просмотров
schedule 31.07.2023

В чем преимущества fomit-frame-pointer?
-fomit-frame-pointer означает, что нам не нужно нажимать %rbp и перемещать %rsp, %rbp; нам нужно только изменить значение %rsp. Насколько я думаю, фрейм стека, работающий с базовым указателем, и фрейм стека без него не имеют различий с точки зрения...
109 просмотров

Почему отладчик Slime не оценивает конкретное выражение в выбранном фрейме?
Я пытаюсь изучить Common Lisp с помощью книги Common Lisp: мягкое введение в символьные вычисления . Кроме того, я использую SBCL, Emacs и Slime. К концу главы 10 автор обсуждает полезную функцию прерывания. Чтобы обеспечить фоновый контекст, он...
41 просмотров
schedule 15.11.2023