LINUX.ORG.RU

История изменений

Исправление mashina, (текущая версия) :

Интересно, а почему в адреса в трейсе разные? GDB трейс не из %rbp строит? Понятно было бы, если функции разные, а тут и адреса тоже другие.

%rbp, вообще говоря, может не быть с ожидаемым результатом, т.е. с началом адреса кадра, даже для текущей функции - фрейма может вообще не быть (-fomit-frame-pointer) или ф-я могла заюзать временно %rbp в месте останова для чего-либо.

да, чет не подумал. Кстати адреса начинают не сразу отличаться.

Почему именно тут gdb не разрулил хз, но вообще откат стека операция нетривиальная. И по трейсам видно что gdb начинает делать это как-то неправильно т.к. залезает на стек или в кучу (адреса типа 0x00007f6972a2bd10)

Исходная версия mashina, :

Интересно, а почему в адреса в трейсе разные? GDB трейс не из %rbp строит? Понятно было бы, если функции разные, а тут и адреса тоже другие.

%rbp, вообще говоря, может не быть с ожидаемым результатом, т.е. с началом адреса кадра, даже для текущей функции - фрейма может вообще не быть (-fomit-frame-pointer) или ф-я могла заюзать временно %rbp в месте останова для чего-либо.

да, чет не подумал. Кстати адреса начинают не сразу отличаться.

Почему именно тут gdb не разрулиз хз, но вообще откат стека операция нетривиальная. И по трейсам видно что gdb начинает делать это как-то неправильно т.к. залезает на стек или в кучу (адреса типа 0x00007f6972a2bd10)