| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > wxWidgets - Ошибка сигментации |
| Автор: Stajor 19.12.2005, 11:54 | ||||||
| Всем доброго времени суток. Возникла проблема в работе с библиотекой wxWidgets при использовании wxTreeCtrl. Использую MinGwStudio2.05, wxWidgets2.5, ОС- Win2K. Суть проблемы. Программа предназначена для редактирования тестов некоторого девайса. В главном окне есть дочерние окна дерева и редактора тестов. Иерархия дерева: КОРЕНЬ (название проекта тестов) ГРУППА (группа тестов, кол-во не ограниченно) ПАРАГРАФ (параграф тестов, кол-во не ограничено) ... Создаю дерево, наследуя от wxTreeCtrl, так же создаю структуру, в которой должны хрониться тесты во вложенных векторах(при первоначальном запуске программы в структуру записывается только информация о названии проекта тестов). В структуре для каждой ветви дерева сохраняю wxTreeItemId в соответстующих иерархии векторах, для связи элемента дерева со структурой. По контекстному меню добавляю в дерево ветвь группы1, с сохранением группы1 в структуре тестов
где: m_TS - указатель на структуру тестов; IdSelect - wxTreeItemId корня дерева (запоминается в селекте при вызове контекстного меню); ts_temp_g->s_Group.id_tree - запись wxTreeItemId во временной структуре создаваемой группы1; После чего по контекстному меню группы добавляю параграф1 тестов в группу1
IdSelect - wxTreeItemId группы1 (запоминается в селекте при вызове контекстного меню); При добавлении группы1 и последующем добавлении в нее параграфов проблем никаких не возникает, и программа функционирует без каких либо сбоев. При добавлении группы2 и последующем добавлении в нее параграфа вылетает ошибка сигментации при селекте добавленного параграфа в функции OnView(ts_temp_p->s_Paragraph.Id);
В функции поиска элемента структуры ошибок не возникает, элемент находится без проблем. Ошибка, выдаваемая компилятором: Program has received a signal-name="SIGSEGV",signal-meaning="Segmentation fault" at operator==({name="i1",value="@0x22d4e0"},{name="i2",value="@0x1f21014"}), file C:\Projekts of VGenba\include\wx\treebase.h:77 Эта ошибка возникает почти всегда, но очень редко программа проходит без сбоев. Над этой проблемой бьюсь уже неделю, и никак не могу найти ее решения. Пробовал использовать в структуре указатель wxTreeItemId*, результат тот же. Так же пробовал использовать wxTreeItemData в структуре и добавлении wxTreeItemData к создаваемым ветвям, ошибка возникает та же. Если кто сталкивался или знает способ решения подобной ситуации, помогите. |
| Автор: Kagor 22.12.2005, 02:43 |
| Stajor, извиняюсь, конечно, за оффтоп, но по мойму вы не много разделом ошиблись, судя по этому: ОС- Win2K. Может лучше в общих вопросах это спросить? |
| Автор: Stajor 22.12.2005, 10:27 |
| Kagor Согласен что ошибся (затупил с размещением темы), задал Chipset вопрос о перемещении темы в вопросы WinApi\ MFC\.... ответа пока не получил. |
| Автор: ABATAPA 25.1.2006, 21:55 | ||
Извиняюсь и я за offtop ;), но, как новый тут человек, спрошу: почему не здесь? wxWidgets - кроссплатформенная среда, и, по идее, обсуждение использования wxWidgets при создании кроссплатформенных приложений тут - уместно? Я понимаю, что сама проблема, возможно, общего характера, но... Вопрос не праздный - я пришел сюда для поиска информации о проблемах wxWidgets в общем, и кросс-компиляции программ - в частности. |