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

Получить аргумент FormatException
Я использую стороннюю библиотеку с закрытым исходным кодом, например: object val = SomeClass.ExtractValue( someObject ); Теперь где-то дальше по дороге сторонняя библиотека пытается проанализировать значение DateTime, которое имеет...
75 просмотров
schedule 23.10.2022

Действительно ли отсутствие указателей кадров положительно влияет на производительность и отрицательно влияет на возможность отладки?
Как было давным-давно советовано, я всегда собираю свои исполняемые файлы выпуска без указателей фреймов (что по умолчанию, если вы компилируете с /Ox). Однако теперь я прочитал в статье http://research.microsoft.com/apps/pubs/default.aspx?id=81176...
7503 просмотров

EBP, ESP и стековая рама в сборе
У меня есть несколько вопросов о EBP, ESP и кадре стека в следующем коде. Почему мы вычли 28 из esp? У нас есть две локальные переменные x и y в main. Так почему мы не вычли 8? И разве мы не помещаем значения в стек справа (или сверху)...
9161 просмотров

Что находится между ESP и EBP?
Верно, я уверен, что на это неявно ответят много раз, но, похоже, я не могу до конца до конца добраться. Если у вас есть трассировка стека (x86) (скажем, глядя на нее в WinDbg) и вы смотрите на регистры, что означает, что значения EBP и ESP...
88780 просмотров

Можем ли мы получить доступ к указателю кадра стека из имени функции
Есть ли способ получить доступ к указателю фрейма стека из имени/адреса функции в программе C? Я попытался проанализировать содержимое по адресам памяти, начиная с адреса функции в GDB, но не смог получить никакой значимой информации. Может ли...
861 просмотров
schedule 14.04.2022

Какой адрес возвращает функция из стека?
У меня есть следующий код int isBST(struct node* node) { return(isBSTUtil(node, INT_MIN, INT_MAX)); } int isBSTUtil(struct node* node, int min, int max) { if (node==NULL) return 1; if (node->data <= min ||...
78 просмотров
schedule 09.06.2023

x86_64: указатель кадра стека почти бесполезен?
Линукс х86_64. gcc 5.x Я изучал вывод двух кодов, с -fomit-frame-pointer и без него (gcc at "-O3" включает эту опцию по умолчанию). pushq %rbp movq %rsp, %rbp ... popq %rbp Мой вопрос: Если я глобально отключу эту...
3985 просмотров
schedule 22.04.2023

Почему у меня ошибка сегментации в рекурсивной функции сборки?
Привет, я пишу рекурсивный код Фибоначчи в сборке с соглашением о вызовах amd64 abi, но всегда получаю ошибку сегментации: / Я компилирую его с помощью: nasm -f elf64 -o fibo.o fibonacci.asm ld -o fibo fibo.o ./fibo У меня нет ошибок...
146 просмотров
schedule 27.04.2022

Создает ли блок if запись в кадре стека в JAVA?
Я просматривал фрейм стека, поэтому каждый вызов функции помещается в фрейм стека и выталкивается после завершения, поэтому, когда выполняется блок if, он помещается в фрейм стека или он будет выполняться в текущей записи стека методов?
59 просмотров
schedule 23.06.2023

Почему RBP вместо другого регистра в качестве указателя кадра?
Я понимаю использование push rbp ... pop rbp в начале и в конце функции для сохранения значения rbp вызывающей функции, поскольку регистр rbp сохраняется вызываемым пользователем. И тогда я понимаю «соглашение» об использовании rbp в качестве...
85 просмотров
schedule 14.11.2022