Имею VC .Net и STLport 5.0.
Выставляю _STLP_DEBUG в файле stl_user_config.h и при вызове компилятора: /D "_STLP_DEBUG".
Линкую с stlport_vc70_stldebug_static.lib.
Однако, штатный пример
------------
char string[23] = "A string to be copied.";
char result[23];
std::copy(string+20, string+10, result);
------------
выдает
"This application has requested the Runtime to terminate it in an unusual way."
вместо положенной отладочной информации.
Вопрос — как сделать так, чтобы отладочный режим работал?
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re: Отладочный режим STLport - не могу включить :(
Здравствуйте, Basil2, Вы писали:
B>Имею VC .Net и STLport 5.0. B>Выставляю _STLP_DEBUG в файле stl_user_config.h и при вызове компилятора: /D "_STLP_DEBUG". B>Линкую с stlport_vc70_stldebug_static.lib.
В stl_user_config.h ничего прописывать не надо — достаточно /D "_STLP_DEBUG"
B>Однако, штатный пример B>------------ B>char string[23] = "A string to be copied."; B>char result[23]; B>std::copy(string+20, string+10, result); B>------------ B>выдает B>"This application has requested the Runtime to terminate it in an unusual way." B>вместо положенной отладочной информации.
А в Output посмотреть? У меня например вот такое есть:
e:\_media\proj\libs\stlport\stlport\stl\debug\_debug.c(78): STL error: Range [first,last) is invalid
e:\_media\proj\libs\stlport\stlport\stl\_algobase.h(247): STL assertion failure : __check_range(__first, __last)
так что все работает.
Re[2]: Отладочный режим STLport - не могу включить :(
B>>Однако, штатный пример выдает B>>"This application has requested the Runtime to terminate it in an unusual way." B>>вместо положенной отладочной информации.
_>А в Output посмотреть?
Так я в него и смотрю — у меня КОНСОЛЬНОЕ приложение, фраза выше скопирована из вывода консоли, где я запускал свою программу.
_>У меня например вот такое есть: _>e:\_media\proj\libs\stlport\stlport\stl\debug\_debug.c(78): STL error: Range [first,last) is invalid _>e:\_media\proj\libs\stlport\stlport\stl\_algobase.h(247): STL assertion failure : __check_range(__first, __last) _>так что все работает.
Я уверен, что у большинства работает; вопрос в том, почему может не работать у меня?!
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[3]: Отладочный режим STLport - не могу включить :(
Здравствуйте, Basil2, Вы писали:
_>>А в Output посмотреть? B>Так я в него и смотрю — у меня КОНСОЛЬНОЕ приложение, фраза выше скопирована из вывода консоли, где я запускал свою программу.
Я имел ввиду не окно консоли, а окно Output(Debug) в VC7 — меню View->Other Windows->Output. Вот там оно и выводит эти ошибки. В консоль при этом ничего не выводится — я что-то помню что когда-то видел, что оно еще и в консоль выводило ошибки, но это давно было — наверное поменяли на какой-то версии.
Re[4]: Отладочный режим STLport - не могу включить :(
Здравствуйте, _grisha, Вы писали:
_>>>А в Output посмотреть? B>>Так я в него и смотрю — у меня КОНСОЛЬНОЕ приложение, фраза выше скопирована из вывода консоли, где я запускал свою программу.
_>Я имел ввиду не окно консоли, а окно Output(Debug) в VC7 — меню View->Other Windows->Output. Вот там оно и выводит эти ошибки. В консоль при этом ничего не выводится — я что-то помню что когда-то видел, что оно еще и в консоль выводило ошибки, но это давно было — наверное поменяли на какой-то версии.
Я так понимаю, что в случае консоли все сообщения выводятся в stderr, так что я должен их видеть.
Скажи пожалуйста, с какими настройками ты компилируешь программу?
(в среде есть опция типа "посмотреть, какие были бы ключи компиляции если делать проект в консоли)
Особенно интересуют ключи /MT, /MD, /MTd и пр.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[5]: Отладочный режим STLport - не могу включить :(
Здравствуйте, Basil2, Вы писали:
B>Скажи пожалуйста, с какими настройками ты компилируешь программу? B>(в среде есть опция типа "посмотреть, какие были бы ключи компиляции если делать проект в консоли) B>Особенно интересуют ключи /MT, /MD, /MTd и пр.
т.е. используется Multithreaded Debug DLL. STLport 5.0 — брал из cvs где-то в конце ноября — вряд ли с тех пор что-то поменяли в отношении debug-режима.
IMHO особой пользы от вывода ошибок в консоль нет — в случае ошибки идет assert-breakpoint — по стеку сразу видно, что ошибка идет от stlport-а — и посмотрев в Output можно собственно само сообщение об ошибке увидеть. Все довольно удобно.
Re[6]: Отладочный режим STLport - не могу включить :(
Здравствуйте, _grisha, Вы писали:
_>т.е. используется Multithreaded Debug DLL. STLport 5.0 — брал из cvs где-то в конце ноября — вряд ли с тех пор что-то поменяли в отношении debug-режима.
Спасибо за советы, все решилось. Я расковырял как STLport выводит ошибки — действительно, он использует DebugOutputString(), т.е. все сообщения идут напрямую в дебагер, но не в консоль. Я заменил процедуру вывода на свою (с помощью _STLP_DEBEG_MESSAGE — молодцы ребята, сделали такую возможность), теперь все идет в консоль. Признаю, был неправ; еще раз спасибо.
_>IMHO особой пользы от вывода ошибок в консоль нет — в случае ошибки идет assert-breakpoint — по стеку сразу видно, что ошибка идет от stlport-а — и посмотрев в Output можно собственно само сообщение об ошибке увидеть. Все довольно удобно.
Удобно, но обычно я работаю в консоли в текстовом режиме, так что...
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.