Вопросы по теме '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 просмотров
schedule
12.05.2023
Ссылка на возвращаемое значение функции
Я запутался, гарантированно ли в следующем фрагменте 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 просмотров
schedule
02.06.2022
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 просмотров
schedule
08.09.2022
Почему отладчик Slime не оценивает конкретное выражение в выбранном фрейме?
Я пытаюсь изучить Common Lisp с помощью книги Common Lisp: мягкое введение в символьные вычисления . Кроме того, я использую SBCL, Emacs и Slime.
К концу главы 10 автор обсуждает полезную функцию прерывания. Чтобы обеспечить фоновый контекст, он...
41 просмотров
schedule
15.11.2023