powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / bool и ^=
24 сообщений из 24, страница 1 из 1
bool и ^=
    #34193422
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой оператор, как выяснилось, приводил к порче памяти:
Код: plaintext
1.
bool b = false;
b ^= true;
Это так и должно быть? Таких операторов у меня в программе несколько, и они к вылету ни разу не приводили.
...
Рейтинг: 0 / 0
bool и ^=
    #34193454
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ВэйВот такой оператор, как выяснилось, приводил к порче памятигде ? в воздухе ? без компилятора и ОС ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
bool и ^=
    #34193493
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шутка?
...
Рейтинг: 0 / 0
bool и ^=
    #34193528
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Карабас Барабас
MSVC 6.0 SP6, Win2000 Server.

2Akh
К сожалению, не шутка.
Замена на b = !b; ликвидировала вылет.
Может быть, я не до конца разобрался в ситуации, поэтому и спрашиваю.
...
Рейтинг: 0 / 0
bool и ^=
    #34193547
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ВэйMSVC 6.0 SP6, Win2000 Server.А как выявил, что именно эти строчки портят ?

PS: MSVC не пользую, на BCB5 вроде все нормально
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
bool и ^=
    #34193588
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ВэйЗамена на b = !b; ликвидировала вылет.
Может быть, я не до конца разобрался в ситуации, поэтому и спрашиваю.

Какого рода вылет?
...
Рейтинг: 0 / 0
bool и ^=
    #34193638
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Карабас Барабас
А как выявил, что именно эти строчки портят ?
Методом Больцано-Вейерштрасса (отсекая куски кода return-ами или закомментированием).
Если этот оператор закомментировать, то не вылетает. Если заменить на b = !b; тоже не вылетает.

Собрал тестовый проект -- ничего не портится. Абыдна.


2Akh
Какого рода вылет?
Access Violation.
Эта bool переменная объявлена в классе, сразу за ней идёт CTypedPtrList (он был пустой). В деструкторе вызывалось его RemoveAll(), на этом операторе происходил вылет.
Зайти в код MFC не могу с тех пор как поставил SP6.

Rebuild All делал.
...
Рейтинг: 0 / 0
bool и ^=
    #34193648
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэйа ассемблерный код смотрел ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
bool и ^=
    #34193681
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ВэйRebuild All делал.

И одного варианта и другого?
...
Рейтинг: 0 / 0
bool и ^=
    #34193701
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка навернека в другом месте. Надо эти строчки оставить, а остальное коментировать, пока не перестанет вылетать.
...
Рейтинг: 0 / 0
bool и ^=
    #34193737
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В некотором смысле удалось воспроизвести.
Правда, получилось Stack Overflow и только в Debug.
Текст чуть сложнее чем я приводил, но всё равно в районе 10 строчек.

См. прикреплённый zip (проект для MSVC и ехе-файлы).
Запускал на машине с Win98, тоже вылетает (и тоже в MFC).

MFC криво стала?
...
Рейтинг: 0 / 0
bool и ^=
    #34193861
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй...MFC криво стала?

хз... сам Ваш проект под 2005 компилится, в дебаг режиме проходит на ура...

(круглый)
...
Рейтинг: 0 / 0
bool и ^=
    #34193920
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2kolobok0
Да, типичный хз...
На ещё одной машине не вылетает, а где какой SP я не помню.

Под 2005 ведь своя версия MFC? У меня на ней тоже не вылетает.

Ладно, по крайней мере не в языке С++ дело.
...
Рейтинг: 0 / 0
bool и ^=
    #34193924
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, компилер глюкает? Оно может бул в одном бите хранить (при этом с ксором могут быть проблемы, хотя хз). Поставь в дебуг и снизь оптимизацию до нуля.
...
Рейтинг: 0 / 0
bool и ^=
    #34193936
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй 2kolobok0
Да, типичный хз...
На ещё одной машине не вылетает, а где какой SP я не помню.

Под 2005 ведь своя версия MFC? У меня на ней тоже не вылетает.

Ладно, по крайней мере не в языке С++ дело.


стоп..стоп..стоп...
Вы хотите сказать, что шаред эм-фэ-цэ (там их три дэлеле) и версия другая на машине ??? стопудово вылетит...

(круглый)
...
Рейтинг: 0 / 0
bool и ^=
    #34193957
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, левый мфц он не подрубит, а если подрубит, неясна зависимость от булов
...
Рейтинг: 0 / 0
bool и ^=
    #34193972
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2maXmo
Оно вылетает только в дебаге (и оптимизация, ясен пень, отключена).
В релизе с отключённой оптимизацией не вылетает, увы.

2kolobok0
"Под 2005" я имел в виду, что пересобрал этот проект в среде 2005 и запустил.
А что 2 MFC, ну так и что? Не первый год, и ничего.
Одна 4.2, другая 7 с чем-то, не конфликтуют.
...
Рейтинг: 0 / 0
bool и ^=
    #34193975
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoне, левый мфц он не подрубит, а если подрубит, неясна зависимость от булов

а там чёрте, что мона словить...если баги полечили и приемлемая версия - даже будет работать...

ну может я не так выразился - но гимор словить мона...
посему обычно при использовании шаред эм-фэ-це в поставке инсталяли свои дэлеле в каталог загрузки (грубо говоря бин)...а может и правили в системном - не помню щаз...и декларировали, что дескать требуется эм-фэ-це не ниже такой то вот версии...но прогон теста - ТОЛЬКО на родной...

особенно актуально, когда идёт работа с кучей в контекстах не испольняемого модуля...всякие там актив иксы, графика самопальная и иже...

(круглый)
...
Рейтинг: 0 / 0
bool и ^=
    #34193981
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй 2maXmo
Оно вылетает только в дебаге (и оптимизация, ясен пень, отключена).
В релизе с отключённой оптимизацией не вылетает, увы.

2kolobok0
"Под 2005" я имел в виду, что пересобрал этот проект в среде 2005 и запустил.
А что 2 MFC, ну так и что? Не первый год, и ничего.
Одна 4.2, другая 7 с чем-то, не конфликтуют.

должна грузиться не ниже той версии которая компилялась...

(круглый)
...
Рейтинг: 0 / 0
bool и ^=
    #34193996
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoможет, компилер глюкает? Оно может бул в одном бите хранить (при этом с ксором могут быть проблемы, хотя хз). Поставь в дебуг и снизь оптимизацию до нуля.

Недавно, МастерЗив говорил, что у 6-го CFile глюкавый. Вот и на самого компилятора наезд.
...
Рейтинг: 0 / 0
bool и ^=
    #34194019
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2kolobok0
Ну вот и грузится у каждой версии своё MFC (видно в output).

Компилятор всегда прав, особенно такой старый и заслуженный...


Спасибо всем.

Понятно вроде бы, что дело не в этом операторе как таковом, а в каком-то косяке с MFC 4.2, причём скорее в дебаге.
Один из показателей, что с ней не всё в порядке, это невозможность зайти в текст MFC при отладке.
Подскажите, как это вылечить (может начать новую тему?).
А там, глядишь, и это пройдёт.
...
Рейтинг: 0 / 0
bool и ^=
    #34194031
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй 2kolobok0
Ну вот и грузится у каждой версии своё MFC (видно в output).

Компилятор всегда прав, особенно такой старый и заслуженный...


Спасибо всем.

Понятно вроде бы, что дело не в этом операторе как таковом, а в каком-то косяке с MFC 4.2, причём скорее в дебаге.
Один из показателей, что с ней не всё в порядке, это невозможность зайти в текст MFC при отладке.
Подскажите, как это вылечить (может начать новую тему?).
А там, глядишь, и это пройдёт.

там ещё дебаг-релиз версии различаются...
у дебаг буковка D на хвостике.. с этим так-же аккуратно нуна...Мы кажись свои так же маркировали...чтоб просче ориентироваться..а то не понятно визуально кто какую дэлеле юзает...

(круглый)
...
Рейтинг: 0 / 0
bool и ^=
    #34194051
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhВот и на самого компилятора наезд.ну не знаю… пляски с булами – это просто такое шоманство, что я просто не знаю…
...
Рейтинг: 0 / 0
bool и ^=
    #34194362
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем после переустановки SP6 проблема ушла, непонятно только навсегда ли...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / bool и ^=
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]