|
|
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
disclaimer: winapi 2005 sp1 Весь код привести проблематично, да и никто не будет его ковырять, но надеюсь на то, что смогу внятно объяснить проблему, т.к. волнует не код, а сама проблема отладчика... main: перевожу проект, который был написан в MFC в WinAPI, проект довольно большой, но я только в начале пути и вот при отладке столкнулся с тем, что не могу понять как мне отследить возникающую ошибку! breakpoints расставлены, и наблюдается следующая картина, например, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. запускаю по F5, отладчик показывает, что вызвана функция somefunc и останавливается на первом брейкпойнте, затем давлю еще раз F5 и как и положено программа останавливается на втором брейкпоинте. Все вроде ок, но к середине функции возникает ситуация, когда отладчик останавливается на брейкпоинте, скажем 5, нажимаю F5, окно редактора перерисовывается и снова брейкпоинт указывает на номер 5, давлю еще несколько раз, ситуация не меняется!!! Или еще хуже может вернуться назад на 4 брейкпоинт. После еще нескольких нажатий на F5, дебаггер завершает отладку не показывая ни каких ошибок . В программе это выглядит следующим образом: отображается окно диалога, несколько раз очень быстро перерисовывается и выходит без всяких ошибок. Штатный дебагер не замечает ни каких утечек памяти, но BoundsChecker их фиксирует при завершении программы подобным образом, что не удивительно! Если собрать тот же проект в Release варианте, то окно программы запускается и работает так как и должно работать, по крайней мере, на данном этапе разработки. Я не использую goto или еще каких-то хитрых переходов! Сколько я пишу, а такой хрени не видел ни разу... Если кто-то может пролить свет на эту хренотень не откажите в любезности. Принимаются любые советы и предложения, проверю все рац. предложения и о результатах сообщу, мамой клянус! СПАСИБО! -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 11:41 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
[quot Cerebrum] Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Показывай давай, чего спрятал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 12:16 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
mayton Ха! Наивный. Неужели ты тумаешь что с тобой будут играть в Поле Чудес? Показывай давай, чего спрятал. нет, не думаю, я выложу часть проекта, ты будешь его смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 12:30 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
Cerebrum mayton Ха! Наивный. Неужели ты тумаешь что с тобой будут играть в Поле Чудес? Показывай давай, чего спрятал. нет, не думаю, я выложу часть проекта, ты будешь его смотреть? У тебя брекпоинты в разных потоках? Если нет, но можно сузить размер кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 12:46 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
рискну предположить следующие ситации: - многопоточность - рассинхронизация исходников и кода - наличие флагов оптимизации компилятора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 13:19 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
-------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 13:34 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
сорри -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 13:35 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
-------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2007, 13:36 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
похоже виновник найден. вот эта функция в шаблонном классе похоже некорректно отрабатывает, если оставляю только return false программа начинает работать также как release сборка Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 12:53 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
поправил на Код: plaintext 1. 2. 3. 4. 5. 6. в шоке -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 13:00 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
засунул счетчик в обработчик сообытия WM_PAINT, на каждую отрисовку приходится 35 (!!!) вызовов этой функции, это нормально для простого контрола? -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 18:42 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
Cerebrumпоправил на Код: plaintext 1. 2. 3. 4. 5. 6. в шоке -------------------------------------------------------------- [не претендую на уникальность] От чего? В каждом контейнере есть элемент который обозначает конец контейнера, на него указывает то что возвращает end А вот то что лежит в этом элеменете- мусор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 21:12 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
blinded От чего? В каждом контейнере есть элемент который обозначает конец контейнера, на него указывает то что возвращает end А вот то что лежит в этом элеменете- мусор от того что я был blind как думаешь 35 раз WM_PAINT это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2007, 22:24 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
стоит студия 2003 и уже несколько раз было примерно следующее: strcpy(tmp1, tmp2); в результате в tmp1 оказывалось вовсе не то, что было в tmp2, тоже самое происходило при передаче параметра любой др. ф-ии, причем любого типа, при этот отладчик в некоторых моментах может "прыгать" назад и вперед банальный перезапуск студии и винды не помогает, был найден такой метод: добавляется строчка кода, хотябы та же strcpy(tmp1, tmp2), проект ребилдится, после чего добавленная строчка удаляется, снова ребилдится и дальше все в порядке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 13:50 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
а если strcpy_s? -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 14:54 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
Cerebrumа если strcpy_s? -------------------------------------------------------------- [не претендую на уникальность] там с размерами все в порядке, да и strcpy я привел исключительно как пример, там могло быть что угодно, просто студия начинает гнать внезапно и все тут, за год это случилось всего 3 раза, но первый и второй случай я потратил уйму времени, т.к. верил в ее непогрешимость а вообще strcpy_s в 2003 студии разве имеется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 15:34 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
Tubrikа вообще strcpy_s в 2003 студии разве имеется? не помню, давно уже не писал в этой версии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 16:04 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
Cerebrumкак думаешь 35 раз WM_PAINT это нормально? И что с одними и теме же аргументами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 20:04 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
blinded Cerebrumкак думаешь 35 раз WM_PAINT это нормально? И что с одними и теме же аргументами? да, специально ставил watch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 21:42 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
а spy показывает один вызов WM_PAINT -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 21:45 |
|
||
|
Кажись я сломал мелкомягкую IDE...
|
|||
|---|---|---|---|
|
#18+
SetWindowText пораждает WM_PAINT? если да, то я понял что сам дурак: сам генерил перерисовку контрола, когда показывал сколько раз вызвана функция и занося значение счетчика в текст контрола, который заставлял его перерисовываться, а если нет то я теряюсь, потому что занося текст в заголовок диалога вызовы WM_PAINT происходят так как и показывает Spy -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2007, 21:59 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=294&tid=2028843]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 451ms |

| 0 / 0 |
