![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
Здравствуйте, подскажите пожалуйста. Есть код, который в определенных местах вызывает такую функцию
Но на самом деле такое сообщение мало чего дает мне как программисту, так как не понятно из какого места оно получилось. Поэтому хочется иметь какой-нибудь механизм распознания. Единственное, что мне приходит в голову, это вместо сообщения кидать исключение и в каждом месте его ловить. Тогда я смогу точно определить проблемный кусок кода. Но эта функция будет вызываться в оооочень многих местах и всюду делать try-cath вроде не хочется. Может есть еще способы? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
__FILE__, __LINE__, __FUNCTION__/__PRETTY_FUNCTION__
Добавлено через 1 минуту и 6 секунд можно еще стек вывести. но это наверняка лишнее) |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
Спасибо большое, а вот про стек можно по подробнее. Так как уж больно заманчиво звучит =))
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
это зависит от используемого компилятора/ОС. лучше спросить гугл.
|
|||
|
||||
| xTr1m |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
По поводу __FUNCTION__ , попробовал сделать так
но получил
То есть параметром по умолчанию передать не удалось. Пока вижу два выхода. При каждом вызове функции передавать __FUNCTION__ явно (что конечно не очень). Или написать макрос на эту функцию. Но макрос тоже как то не совсем. |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Простой способ. Собираете ваше приложение с отладочной информаций, запускаете. Когда видите MessageBox с "Null object detected" запускаете студию и коннектитесь к своему запущенному приложению, нажимаете в дебагаре break и смотрите стек вызовов
Еще вариант - вместо MessageBox пишете функцию типа error(...), в ней делает что хотите (для вывода ошибки). Загружаете программу под дебагером, ставите точку останова на ваш error и запускаете программу. Когда точка останова сработает - смотрите стек |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
xvr, дело в том, что ошибка возникает уже у клиента. И понять почему нереально при текущей архитектуре. А так согласился на вариант с макросом. Спасибо.
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в таком случае, обычно создается лог-файл который отправляется разработчику. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
xTr1m, посмотри это
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
borisbn, штука классная, но такое ощущение, что в svn тамошнем в папке externals чего то не хватает. а именно нет вот этого "#include "../externals/StackWalker/StackWalker.h"". Может еще можно где то взять?
|
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
В недрах интернета удалось найти недостающий класс =))
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
xTr1m, здорово. А выложи сюда архив со всеми требуемыми для компиляции файлами, пожалуйста.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
Вот тут все в кучу. В проекте примерно так
Это сообщение отредактировал(а) xTr1m - 16.3.2012, 15:46 Присоединённый файл ( Кол-во скачиваний: 11 )
stacker.rar 20,92 Kb |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
xTr1m, спасибо.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| leniviy |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
Я попробовал. Плохо работают эти классы, даже в Debug.
|
||||
|
|||||
| xTr1m |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: 1 Всего: 1 |
забавно, какая то бага похоже. но так работает
может все дело именно в рекурсии |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |