Что является segfault rip/rsp числа и как использовать их

Преимущества повышения: это широко доступно, портирует на любой современный компилятор C++ или о любой платформе.
функции являются независимой платформой, Вы не должны изучать дизайн нового потока для каждой новой платформы.
Это инкапсулирует много платформы определенные функции, как файловые системы стандартным способом.

Это - то, с чем должен был поставляться C++! Большая популярность Java была, это поставляется со стандартной библиотекой, чтобы сделать симпатичный очень все, что Вы хотели. C++, к сожалению, только наследовал ограниченные стандартные функции C/Unix.

11
задан Bill the Lizard 12 January 2010 в 02:30
поделиться

1 ответ

Ну, указатель разрыва сообщает вам инструкцию, которая вызвала сбой. Вам нужно найти его в файле карты.

В файле карты у вас будет список функций и их начальный адрес. Когда вы загружаете приложение, оно загружается по базовому адресу. Указатель копирования - базовый адрес дает вам адрес файла карты. Если вы затем выполните поиск в файле карты для функции, которая начинается с адреса немного ниже, чем ваш указатель копирования, а за ней в списке следует функция с более высоким адресом, вы обнаружите функцию, которая потерпела крах.

Отсюда вам нужно попытаться определить, что пошло не так в вашем коде. Это не очень весело, но, по крайней мере, дает вам отправную точку.

Изменить: Бит "segfault at" говорит вам, держу пари, что вы разыменовали указатель NULL. Rsp - это текущий указатель стека. Увы, наверное, не так уж и полезно. С помощью дампа памяти вы «возможно» сможете более точно определить, где вы оказались в функции, но может быть действительно сложно определить, где именно вы находитесь в оптимизированной сборке

7
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: