] [
] Я видел [] эту [] ветку. Мой случай немного отличается, и я изо всех сил пытаюсь понять, как [] "этот" [
] указатель повреждается. [
] [
] Я использую структуру Qt 4.6.2, используя их [] QTreeView [
] с моей собственной моделью. Я получаю обратную трассировку (длина 86 кадров, с большим количеством рекурсии, поэтому я не вставил все это целиком, он в этом [] pastebin [] включает только их код. [
] [
] Наконец-то произошла ошибка на каком-то ассемблере в QBasicAtomicInt :: deref, но очевидно, что он утих дальше, о чем свидетельствуют эти три фрейма: [
] [
#15 0x01420fd3 in QFrame::event (this=0x942bba0, e=0xbf8eb624) at widgets/qframe.cpp:557
#16 0x014bb382 in QAbstractScrollArea::viewportEvent (this=0x4, e=0x93f9240) at widgets/qabstractscrollarea.cpp:1036
#17 0x0156fbd7 in QAbstractItemView::viewportEvent (this=0x942bba0, event=0xbf8eb624) at itemviews/qabstractitemview.cpp:1610
] [
] В кадре 17 [] этот [
] равен [] 0x942bb0 [
]. В кадре 16 [] этот [
] должен быть таким же, как в кадре 17, он вызывает реализацию того же метода своего предка. Однако [] это [
] становится 0x4. [
] [
] Достаточно интересно, что в кадре 15 (опять же, кадр 16 вызвал реализацию той же функции своего предка) указатель this восстанавливается до [] 0x942bba0 [
]. [
] [
] Если вы посмотрите на pastebin полную трассировку, вы можете увидеть некоторую «оптимизированное значение». Я скомпилировал приложение с включенной оптимизацией; Теперь у меня gcc установлен на [] -g3 -O0 [
], поэтому, когда это произойдет в следующий раз, у меня может быть что-то еще. Но сейчас, конечно, я не могу заставить его вылететь из строя - это довольно сложная ошибка (но, тем не менее, ее очень важно исправить), поэтому я не думаю, что это слишком подозрительно. [
] [
] С учетом оптимизации, является ли [] этот [
] [] указатель = 0x4 [
] необычным или определенно неправильным? Странно то, что ни в одном из этих фреймов viewportEvent нет реального кода - они просто переключают тип события, оно не проходит через оператор switch и возвращает реализацию своего предка. [
] [
] Valgrind, похоже, не вызывает никаких проблем, хотя я еще не делал сбоев в Valgrind. [
] [
] Кто-нибудь видел такое поведение раньше? Что могло быть причиной этого? [
]