Nano Hash - криптовалюты, майнинг, программирование

Ошибка сегментации из std::_Rb_tree_increment (__x=0x1)

Я получаю ошибку сегментации при переборе набора. Трассировка стека указывает на 0x000000081193ccc5 в std::_Rb_tree_increment (__x=0x1) в /libstdc++/src/tree.cc:68 0x0000000806c3107e в std::_Rb_tree_const_iterator::operator++ в stl_tree.h:266

но я не получаю ничего более информативного, но последняя строка аварии выглядит так, как показано ниже. Итератор находится над набором.

  typedef std::set<test*,test_less> test_set_t;

  test_set_t& set(bt->getSet());   // getSet() will return reference to the class bt member variable set

 test_set_t::iterator pos = set.begin();

 test empty(val);
 test* last_ptr = &empty;

 for (; pos != set.end(); last_ptr = *pos++) {       // gdb shows this as last line

Я не вижу проблемы. Заранее спасибо.

27.01.2012

  • Пожалуйста, покажите, что находится в теле цикла, так как ошибка может быть вызвана чем-то там (но распознается только упомянутой вами строкой). 27.01.2012
  • Полный минимальный тестовый пример был бы полезен для поиска этой ошибки, поскольку похоже, что вы где-то вызываете UB, а поскольку симптомы UB могут проявляться везде, а не в строке, которая его вызывает, представление реального кода — единственный разумный способ отладки. вещи в структурированном виде. 27.01.2012

Ответы:


1

Скорее всего, либо набор пуст, либо вы стерли элемент, на который указывал pos, во время итерации.

27.01.2012
  • Поскольку этот сбой, который я получаю, не воспроизводится, а внутренний код сложен, чтобы обсуждать его здесь (как вызывающие функции). Может кто-нибудь предложить получить такое же ядро ​​с помощью примера программы для установки. Мне будет очень полезно отлаживать таким образом. 01.02.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..