Преимущества повышения: это широко доступно, портирует на любой современный компилятор C++ или о любой платформе.
функции являются независимой платформой, Вы не должны изучать дизайн нового потока для каждой новой платформы.
Это инкапсулирует много платформы определенные функции, как файловые системы стандартным способом.
Это - то, с чем должен был поставляться C++! Большая популярность Java была, это поставляется со стандартной библиотекой, чтобы сделать симпатичный очень все, что Вы хотели. C++, к сожалению, только наследовал ограниченные стандартные функции C/Unix.
Ну, указатель разрыва сообщает вам инструкцию, которая вызвала сбой. Вам нужно найти его в файле карты.
В файле карты у вас будет список функций и их начальный адрес. Когда вы загружаете приложение, оно загружается по базовому адресу. Указатель копирования - базовый адрес дает вам адрес файла карты. Если вы затем выполните поиск в файле карты для функции, которая начинается с адреса немного ниже, чем ваш указатель копирования, а за ней в списке следует функция с более высоким адресом, вы обнаружите функцию, которая потерпела крах.
Отсюда вам нужно попытаться определить, что пошло не так в вашем коде. Это не очень весело, но, по крайней мере, дает вам отправную точку.
Изменить: Бит "segfault at" говорит вам, держу пари, что вы разыменовали указатель NULL. Rsp - это текущий указатель стека. Увы, наверное, не так уж и полезно. С помощью дампа памяти вы «возможно» сможете более точно определить, где вы оказались в функции, но может быть действительно сложно определить, где именно вы находитесь в оптимизированной сборке