Eclipse CDT - Сообщено о нескольких ошибках - Невозможно создать переменный объект - PullRequest
0 голосов
/ 20 февраля 2020

Я использую Eclipse IDE для C / C ++ для работы над своими проектами.

Версия: 2019-06 (4.12.0) Идентификатор сборки: 20190614-1200

Я возможность успешно скомпилировать проекты с

g cc 9.2, а также с g cc 7.4.0 и текущей версией clang версии 11.0.0 из emscripten

, которую я использую Тест Google для моего проекта теста. Код компилируется со следующими определениями cmake:

add_definitions(" -pedantic -pedantic-errors -W ")
add_definitions(" -Wall -Wextra -Wpedantic -Werror -Wshadow -Wnon-virtual-dtor -Wunused ")
add_definitions(" -v ")
add_definitions(" -g  ")

Когда я запускаю один из моих тестов, Ecipse CDT сообщает о следующей ошибке, когда я нахожу над shared_ptr, например, в режиме отладки, если у меня есть установить точку останова в начале теста: для некоторого объекта (неважно, какой), например, ниже:

shared_ptr<SomeVerySimpleObject> someVerySimpleObjectTemp = make_shared<SomeVerySimpleObject>();

я получаю следующее сообщение:

Multiple errors reported.

1) Failed to execute MI command:
-var-create - * someVerySimpleObjectTemp
Error message from debugger back end:
Cannot instantiate printer for default visualizer

2) Unable to create variable object

3) Failed to execute MI command:
-var-create - * theTestedObjectToCheck
Error message from debugger back end:
Cannot instantiate printer for default visualizer

тогда я вижу одно и то же сообщение для всех остальных shared_ptr в тесте, однако часть

"-var-create - * someVerySimpleObjectTemp"

изменяется в соответствии с рассматриваемым объектом

Меня не волнуют ошибки "Не удается создать экземпляр принтера для визуализатора по умолчанию" так как они описаны здесь, и я могу их отключить, т. е. отсюда Удаленная отладка GDB - Не удается создать экземпляр принтера для визуализатора по умолчанию

Однако я забочусь об ошибке «Невозможно создать переменный объект», я хочу понять, что вызывает ошибку «Невозможно создать переменный объект». Это очень похоже на этот пост

{ ссылка }

за исключением того, что я уже обновился до последней версии Eclipse и g cc, версия gdb 8.1.0, и это может не решение проблемы.

Теперь важно сказать, что все тесты выполняются просто отлично. Я не получаю никаких ошибок сегментации или каких-либо других сигналов, прерывающих тест, и результаты теста также являются теми, которые я ожидаю. Однако это продолжает беспокоить меня !!! Это происходит только в этом конкретном тесте. Который довольно большой. Если я создаю новый тест, чтобы в частности проверить создание этого объекта отдельно, например, только эту строку

shared_ptr<SomeVerySimpleObject> someVerySimpleObjectTemp = make_shared<SomeVerySimpleObject>();

отдельно, я вообще не получаю сообщений об ошибках

Я запустил GDB с надеюсь получить некоторую обратную трассировку или что-нибудь полезное, но проблема в том, что gdb, запущенный из командной строки, не сообщает об ошибках, так как исполняемый файл работает нормально. Мой вопрос здесь касается только части «Невозможно создать переменный объект», что вызывает эту ошибку в Eclipse CDT?

Любые идеи приветствуются.

...