Я не могу использовать RSP для ссылки на конец стека.

в моей системе (x86_64), когда я использую GDB, и RBP, и RSP указывают на один и тот же адрес памяти после помещения нового кадра стека, поэтому я не могу ссылаться на конец стека с помощью регистра RSP, поскольку он имеет то же значение, что и RBP. Я видел, что в других системах регистр RSP используется для отслеживания адреса конца стека, но, к сожалению, в моей GDB он так не работает.

Я использую этот небольшой код, чтобы проверить его:

      #include <stdio.h>

void test_function(int a, int b, int c, int d) {
    int flag;
    char buffer[10];
 
    flag = 31337;
    buffer[0] = 'A';
}

int main(){
    test_function(1, 2, 3, 4);
}

это то, что я получаю в GDB:

Обратите внимание, что в прологе функции в ассемблере для RSP также нет «под» операции.

Итак, мой вопрос: есть ли другой способ получить доступ к концу стека, если у меня нет регистра RSP?

Я все еще новичок в этом, я все время учусь, поэтому есть вещи, которые, возможно, я игнорирую или не понимаю.

0 ответов

Другие вопросы по тегам