Gcov с опцией -b приведет к ошибке сегментацииC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Gcov с опцией -b приведет к ошибке сегментации

Сообщение Anonymous »

Я хочу получить покрытие кода общей библиотеки foo.cpp.
Она скомпилирована Bazel, и я добавил параметры покрытия в свой BUILD.bazel. чтобы включить инструмент кода.

Код: Выделить всё

...
copt=["-O0", "--coverage"],
...
И он был успешно скомпилирован, также сгенерирован foo.pic.gcno. Затем я провел несколько тестов и собрал foo.pic.gcda.
Когда я запускаю gcov foo.pic.gcno без каких-либо параметров, будет могут быть предупреждения об отсутствии строк, и может быть сгенерирован foo.cpp.gcov.

Код: Выделить всё

/some/path/foo.gcno: no lines for _ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiED2Ev
/some/path/foo.gcno: no lines for _ZN8eprosima8fastrtps4rtps35RTPSParticipantAllocationAttributesC2Ev
/some/path/foo.gcno: no lines for _ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEEC2Ev
...
Lines executed:68.3% of 201
Creating 'foo.pic.gcov'
Однако при запуске gcov -b foo.pic.gcno gcov аварийно завершает работу из-за Ошибки сегментации перед третьей строкой:

Код: Выделить всё

/some/path/foo.gcno: no lines for _ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiED2Ev
/some/path/foo.gcno: no lines for _ZN8eprosima8fastrtps4rtps35RTPSParticipantAllocationAttributesC2Ev
Segmentation fault
Похоже, что gcov выдал Ошибку сегментации непосредственно перед появлением этого предупреждения /some/path/foo.gcno: нет строк для _ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEEC2Ev
Я не могу быть уверен, что ошибка _ZN5boost4asio6detail7tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEEC2Ev является причиной ошибки сегментации.
Я читал много вопросов об ошибке сегментации gcov . Они сказали, что это в основном из-за несовпадения версий gcov и компилятора. Поэтому я проверил версию gcov и версию своего gcc и убедился, что они совпадают.

Код: Выделить всё

// compiler's version
gcc (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

// gcov's version
gcov (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
Я не знаю, как это отладить. Почему я получаю ошибку сегментации? Любые предложения будут полезны.

Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-fault
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • В чем разница между опцией компилятора `-O0` и опцией` -Og`?
    Anonymous » » в форуме C++
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Предупреждение об использовании неопределенной константы. это приведет к ошибке в будущей версии php
    Anonymous » » в форуме Php
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Покрытие кода с использованием gcov при параллельном запуске
    Anonymous » » в форуме C++
    0 Ответы
    68 Просмотры
    Последнее сообщение Anonymous
  • Как создать покрытие кода для всего покрытия кодовой базы C++ с помощью gcov/lcov
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Запустите инструмент gcov с помощью компилятора C++
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»