Что это значит, если вершина стека вызовов C ++ - «???» со всеми нулями в качестве адреса?

0

Я отлаживаю из журнала сбоев (C++, iOS), и я вижу стек вызовов, который выглядит так:

0 ??? 00000000 0 + 0
1 [ModuleName] 0x00130e3b MethodName
2 [ModuleName] 0x004ae417 OtherMethodName
...

Является ли верхняя часть стека вызовов намеком на любую очевидную проблему? Нулевая ссылка, может быть?

  • 0
    Вы также получите это, когда нет никакой отладочной информации для символа.
  • 0
    Стек вызовов поступил от определенной IDE или отладчика паники? В общем, это означает, что стек вызовов может быть ненадежным и / или символы не были загружены для этого dll Смотрите здесь
Показать ещё 2 комментария
Теги:
debugging

1 ответ

1
Лучший ответ

Это означает, что в стеке есть нулевой указатель, где ожидается адрес. Нуль будет декодирован для чего-то выбранного, чтобы привлечь ваше внимание, а не к тому, что предоставляет дополнительную информацию.

Итак, почему в вашем стеке вызовов есть нуль? Вероятно, из-за перезаписи стека в функции, вызванной из предыдущего метода. Это, конечно же, то, почему вы отлаживаете аварийный сброс.

  • 0
    Спасибо, я искал: «О, это контрольный признак того, что Х случился», если такое объяснение существовало. Это самая близкая вещь, которую я видел к этому.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню