Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Debug Assertion Failed, В самом начале 
:(
    Опции темы
Voker57
  Дата 29.7.2003, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



Сразу после запуска проги выскакивает DAF. Всякие InitInstancы не менял. Помогите!


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
Vicious
Дата 29.7.2003, 17:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так вообще ничего запуститься не успевает?
  Вверх
mr.DUDA
Дата 29.7.2003, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Какая мессага в окне DAF ?


--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 29.7.2003, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Нажми Retry и посмотри в дебагере стек вызовов после какой функции все свалилось

PM ICQ   Вверх
Voker57
Дата 30.7.2003, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



Цитата
Какая мессага в окне DAF ?
user posted image


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
mr.DUDA
Дата 31.7.2003, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Значитца, так. Лезем в сырцы MFC, смотрим что у нас в 43-й строке филеса "objcore.cpp":
Код
BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
ASSERT(this != NULL);           ////////  43-я строка
               // ...........

Самый очевидный источник бага - это обращение к объекту по нулевому поинтеру. Посмотри, где у тебя в исходниках используются указатели на объекты MFC (этим объектом м.б. окно, объект документа или приложения, строка, любой контейнер, объект твоего собственного производного от CObject класса и т.д.).

Еще лучше (и быстрее), как советует DENNN - убери все Breakpoint'ы и запусти в "свободную" отладку (F5). Когда "вылетит" - жми "Повтор", увидишь файл "objcore.cpp" на 43-й строке. Открывай снизу окно стека вызовов ф-ций (Call Stack), и смотри поочередно каждую из них (если видишь хоть одну из тех, что сам редактировал - сразу лезь туда). Переход по ф-циям - даблкликом по строке. Зеленый курсор показывает на ту строку, которая следующая для выполнения (т.е. ошибка будет в той строке, которая перед ним). Пойнтеры (и любые переменные) в окнах "Variables"/"Watch" в этом случае будут соответствовать контексту выбранной ф-ции из стека - ищи нулевые значения в используемых указателях.

Если не найдешь совсем ничего, значит либо ты пробуешь юзать непроинициализированный глобальный объект (скорее всего, из статического метода), либо плохо смотрел Debug'ом.


--------------------
user posted image
PM MAIL WWW   Вверх
Step
Дата 31.7.2003, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Voker57 кинь мне на ящик исходник.... или этот исходник в примерах...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Voker57
Дата 4.8.2003, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



2Step Я кинул.


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
Voker57
Дата 25.8.2003, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



Цитата
CObject::IsKindOf(const CRuntimeClass * 0x00417570 struct CRuntimeClass const  CTwsDoc::classCTwsDoc) line 43 + 22 bytes
CTwsView::GetDocument() line 105 + 16 bytes
CTwsView::CTwsView() line 38 + 97 bytes
CTwsView::CreateObject() line 21 + 83 bytes
CRuntimeClass::CreateObject() line 140 + 6 bytes
CFrameWnd::CreateView(CCreateContext * 0x0067fac4, unsigned int 59648) line 583 + 10 bytes
CFrameWnd::OnCreateClient(tagCREATESTRUCTA * 0x0067f814, CCreateContext * 0x0067fac4) line 615 + 17 bytes
CFrameWnd::OnCreateHelper(tagCREATESTRUCTA * 0x0067f814, CCreateContext * 0x0067fac4) line 633 + 22 bytes
CFrameWnd::OnCreate(tagCREATESTRUCTA * 0x0067f814) line 625
CMainFrame::OnCreate(tagCREATESTRUCTA * 0x0067f814) line 52 + 12 bytes
CWnd::OnWndMsg(unsigned int 1, unsigned int 0, long 6813716, long * 0x0067f6ac) line 1811 + 13 bytes
CWnd::WindowProc(unsigned int 1, unsigned int 0, long 6813716) line 1585 + 30 bytes
AfxCallWndProc(CWnd * 0x007a1e10 {CMainFrame hWnd=confused.gif}, HWND__ * 0x00000854, unsigned int 1, unsigned int 0, long 6813716) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x00000854, unsigned int 1, unsigned int 0, long 6813716) line 368
AfxWndProcBase(HWND__ * 0x00000854, unsigned int 1, unsigned int 0, long 6813716) line 220 + 21 bytes
KERNEL32! bff7363b()
KERNEL32! bff94

Вот call stack и ни одну функцию из этих я не менял


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
mr.DUDA
Дата 25.8.2003, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Значит так. В конструкторе объекта "вид" (CTwsView::CTwsView()) нельзя вызывать GetDocument(), т.к. объект "документ" еще не присоединен к "виду" (90%, что именно это и есть баг).

Я спецом написал тестовый пример, чтобы убедиться в том, что без постороннего вмешательства MFC не вызовет GetDocument до тех пор, пока это не будет "можно". В самый первый раз GetDocument вызывается из OnDraw():
Код

CForumTestView::GetDocument() line 99
CForumTestView::OnDraw(CDC * 0x0064f8e0 {CPaintDC hWnd=0x00000768}) line 58 + 8 bytes
CView::OnPaint() line 185
CWnd::OnWndMsg(unsigned int 15, unsigned int 0, long 0, long * 0x0064fa54) line 1825
CWnd::WindowProc(unsigned int 15, unsigned int 0, long 0) line 1585 + 30 bytes
AfxCallWndProc(CWnd * 0x00771ad0 {CForumTestView hWnd=0x00000768}, HWND__ * 0x00000768, unsigned int 15, unsigned int 0, long 0) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x00000768, unsigned int 15, unsigned int 0, long 0) line 368
AfxWndProcBase(HWND__ * 0x00000768, unsigned int 15, unsigned int 0, long 0) line 220 + 21 bytes
KERNEL32! Ordinal121 + 1879 bytes
KERNEL32! bff94407()

и никак не раньше. Если хочешь докопаться до ошибки, глянь в конструктор "вида" и закомментируй всё, что можно (всё что ты туда добавлял).



--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 25.8.2003, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата
В самый первый раз GetDocument вызывается из OnDraw():

В первый раз вызывается из OnInitialUpdate()
PM ICQ   Вверх
Voker57
Дата 1.9.2003, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



Цитата
Значит так. В конструкторе объекта "вид" (CTwsView::CTwsView()) нельзя вызывать GetDocument(), т.к. объект "документ" еще не присоединен к "виду" (90%, что именно это и есть баг).


Даже 100% :-) Спасибо!


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0543 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.