Связывание библиотеки размотки статически приводит к дампу ядра

Этот код компилируется с g ++ с использованием -std = c ++ 11. Связывание с g ++, когда libunwind связан в статически программных сбоях после exerciseBug (после переброса).
LDFLAGS, которые приводят к сбою:

-Wl, -Bstatic -Lunwind -Wl, -Bdynamic -llzma

когда libunwind динамически связан, код работает как обычно. LDFLAGS, которые приводят к нормальной работе:

-Wl, -Bstatic -Wl, -Bdynamic -lunwind -llzma

#include <iostream>

using namespace std;

void exerciseBug()
{
try {
throw exception();
} catch (exception &err) {
cerr << "caught in exerciseBug\n";
throw;
}
}int main()
{
try {
exerciseBug();
} catch (exception &err) {
cerr << "caught in main\n";
::exit(0);
}
}

Вопрос почему libunwind должен быть динамически связан?
(Работает в Ubuntu 16.04; g ++ (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.4) 5.4.0 20160609)

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]