Описание проблемы:
Я хочу использовать bazel для создания cpptrace на Windows PR для этого.
Он прошел все тесты в Linux, но в Windows тест не пройден, как показано ниже
[----------] 6 tests from FromCurrent
[ RUN ] FromCurrent.Basic
test/unit/tracing/from_current.cpp(98): error: Value of: trace.frames.symbol
Expected: has substring "FromCurrent_Basic_Test::TestBody"
Actual: "::operator()()"
почему cpptrace получит лямбду, а не ожидаемую FromCurrent_Basic_Test::TestBody ?
TEST(FromCurrent, Basic) {
std::vector line_numbers;
bool does_enter_catch = false;
auto guard = cpptrace::detail::scope_exit([&] {
EXPECT_TRUE(does_enter_catch);
});
CPPTRACE_TRY {
line_numbers.insert(line_numbers.begin(), __LINE__ + 1);
static volatile int tco_guard = stacktrace_from_current_1(line_numbers);
(void)tco_guard;
} CPPTRACE_CATCH(const std::runtime_error& e) {
#define CPPTRACE_TRY \
try { \
[&]() -> ::cpptrace::detail::dont_return_from_try_catch_macros { \
CPPTRACE_PUSH_EXTENSION_WARNINGS \
__try { \
CPPTRACE_POP_EXTENSION_WARNINGS \
return [&]() -> ::cpptrace::detail::dont_return_from_try_catch_macros {
#define CPPTRACE_CATCH(param) \
return ::cpptrace::detail::dont_return_from_try_catch_macros(); \
}(); \
CPPTRACE_PUSH_EXTENSION_WARNINGS \
} __except(::cpptrace::detail::exception_filter(GetExceptionInformation())) { \
CPPTRACE_POP_EXTENSION_WARNINGS \
CPPTRACE_UNREACHABLE(); \
} \
}(); \
} catch(param)
#define CPPTRACE_SEH_TRY __try
#define CPPTRACE_SEH_EXCEPT(filter) \
__except(::cpptrace::detail::maybe_collect_trace(GetExceptionInformation(), (filter)))
Подробнее здесь: https://stackoverflow.com/questions/797 ... on-in-msvc
Демонтаж лямбда-выражения в MSVC [закрыто] ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1761213318
Anonymous
Описание проблемы:
Я хочу использовать [b]bazel[/b] для создания [b]cpptrace[/b] на Windows PR для этого.
Он прошел все тесты в Linux, но в Windows тест не пройден, как показано ниже
[----------] 6 tests from FromCurrent
[ RUN ] FromCurrent.Basic
test/unit/tracing/from_current.cpp(98): error: Value of: trace.frames[i].symbol
Expected: has substring "FromCurrent_Basic_Test::TestBody"
Actual: "::operator()()"
почему cpptrace получит лямбду, а не ожидаемую FromCurrent_Basic_Test::TestBody ?
TEST(FromCurrent, Basic) {
std::vector line_numbers;
bool does_enter_catch = false;
auto guard = cpptrace::detail::scope_exit([&] {
EXPECT_TRUE(does_enter_catch);
});
CPPTRACE_TRY {
line_numbers.insert(line_numbers.begin(), __LINE__ + 1);
static volatile int tco_guard = stacktrace_from_current_1(line_numbers);
(void)tco_guard;
} CPPTRACE_CATCH(const std::runtime_error& e) {
#define CPPTRACE_TRY \
try { \
[&]() -> ::cpptrace::detail::dont_return_from_try_catch_macros { \
CPPTRACE_PUSH_EXTENSION_WARNINGS \
__try { \
CPPTRACE_POP_EXTENSION_WARNINGS \
return [&]() -> ::cpptrace::detail::dont_return_from_try_catch_macros {
#define CPPTRACE_CATCH(param) \
return ::cpptrace::detail::dont_return_from_try_catch_macros(); \
}(); \
CPPTRACE_PUSH_EXTENSION_WARNINGS \
} __except(::cpptrace::detail::exception_filter(GetExceptionInformation())) { \
CPPTRACE_POP_EXTENSION_WARNINGS \
CPPTRACE_UNREACHABLE(); \
} \
}(); \
} catch(param)
#define CPPTRACE_SEH_TRY __try
#define CPPTRACE_SEH_EXCEPT(filter) \
__except(::cpptrace::detail::maybe_collect_trace(GetExceptionInformation(), (filter)))
Подробнее здесь: [url]https://stackoverflow.com/questions/79797552/demangling-lambda-expression-in-msvc[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия