Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Столкнулся с проблемой, подскажите куда смотреть. В работе использую visual studio 11, windows 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Т.е. после первого перебора vector<string> tools убивается. Как это побороть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:03 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, Ну, это странно. Не должно. Но кто тебя знает, что там у тебя в operator << ... Могу посоветовать только в данном случае использовать const - объект tools и/или const_iterator по верктору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 12:53 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, Кстати, тут : Код: plaintext 1. могло бы быть так: Код: plaintext 1. это возможно съэкономило бы одно лишнее копирование вектора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 12:54 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadКак это побороть? Написать багреп в МС. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 13:09 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, буду смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 16:40 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
С const_iterator работает как надо. Не понятно баг это или фича. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 16:52 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, А у тебя repro есть ? Маленький код, который это воспроизводит... Если есть -- поделись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 17:02 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
MasterZivGijad, А у тебя repro есть ? Маленький код, который это воспроизводит... Если есть -- поделись. Попробую сделать, и воспроизвести ошибку, но не сегодня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 17:04 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Не получается сделать repro в чистом виде, не прикручивая к нему дополнительных библиотек. Продолжая исследовать проблему обнаружил (код собирался с оптимизацией O2): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Если в конструкции закоментировать хотя бы одну строку или 2 сразу ( stmt->execute(("CREATE TABLE " ), то ошибки не происходит. Если во втором цикле не закомментировать хотя бы одной из этих строк данные пропадают. Если закомментировать все строки тоже все норм. Просто нельзя закомментировать DROP TABLE чтобы не получить ошибку БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 20:04 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, Если бы это было у меня в проекта - я бы подумал что поломал память где то. Например, вышел за пределы массива(или строки). Способов это сделать много, поэтому тут уже надо смотреть детали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 05:31 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, stmt->execute Это из какой библиотеки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 08:34 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
MasterZivGijad, stmt->execute Это из какой библиотеки? Код: plaintext 1. 2. 3. 4. 5. 6. mysqlcppconn.dll libmysql.dll ссылка на пример из документации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 09:42 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
alex_kGijad, Если бы это было у меня в проекта - я бы подумал что поломал память где то. Например, вышел за пределы массива(или строки). Способов это сделать много, поэтому тут уже надо смотреть детали. Поломанная память не должна зависеть от оптимизации, если она поломана, то поломана. А тут наблюдается эта зависимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 09:44 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadПоломанная память не должна зависеть от оптимизации, если она поломана, то поломана. А тут наблюдается эта зависимость. Ха, ещё как она зависит! При выключенной оптимизации, да ещё в дебаг режиме, очень часто поломки памяти не видны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 09:52 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
MasterZivХа, ещё как она зависит! При выключенной оптимизации, да ещё в дебаг режиме, очень часто поломки памяти не видны. Я изучал проблему релизов . И когда вылезла эта, я ожидал подобного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 10:01 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Видимо, все-таки ломается память, как именно х.з. Есть ли какие-нибудь инструменты облегчающие поиск ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 10:33 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
MasterZivмогло бы быть так: Код: plaintext 1. это возможно съэкономило бы одно лишнее копирование вектора. Сейчас специально проверил: Код: plaintext 1. вывел на печать &tools в функции и &tools в теле программы, адреса полностью совпали. Никакого лишнего копирования не произошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 11:38 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadВидимо, все-таки ломается память, как именно х.з. Есть ли какие-нибудь инструменты облегчающие поиск ошибки? В винде ? Там были вроде какие-то режимы сборки специальные... Надо читать, про последние версии VC я не очень в курсе. Я знаю, что там что-то продвинули в плане отладки, но помню только про STL (безопасные итераторы). Про линукс -- valgrind. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:04 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadMasterZivмогло бы быть так: Код: plaintext 1. это возможно съэкономило бы одно лишнее копирование вектора. Сейчас специально проверил: Код: plaintext 1. вывел на печать &tools в функции и &tools в теле программы, адреса полностью совпали. Никакого лишнего копирования не произошло. Ты слово "возможно" заметил ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:05 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
MasterZivТы слово "возможно" заметил ? Заметил, поэтому и решил проверить, чтобы закрыть этот вопрос для себя. Винда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:08 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Дебаггер в VS какой-то странный, когда код собран с O2 он игнорирует большую часть имеющихся (инициализированных) переменных. Без оптимизации вроде норм, хоть вообще её отключай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:13 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadДебаггер в VS какой-то странный, когда код собран с O2 он игнорирует большую часть имеющихся (инициализированных) переменных. Без оптимизации вроде норм, хоть вообще её отключай. А как ты думаешь делается оптимизация ? Выкидываются лишние переменные, в том числе. Правда, это можно наверняка запретить. Но это надо читать документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:20 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadЕсть ли какие-нибудь инструменты облегчающие поиск ошибки? Большую часть ошибок способна ловить сама отладочная RTL, нужно только указать её использование при сборке. На остальное есть, например, drMemory. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:25 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
Gijad, На самом деле я даже и не знаю, чем ловить порчу памяти, в смысле, тул какой использовать. Такие ошибки на самом деле достаточно редки. Там были какие-то сторонние библиотеки, но они все за денюжку... Как самый простой вариант, можно просто пройти в отладчике по всему этому коду, проверяя тщательно все переменные после каждой модификации, а особенно -- этот вектор tools. Там кода в общем немного. Как более продвинутый способ -- идти не по шагам, а поставить break-и на изменение памяти этого vector-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:25 |
|
||
|
Пропажа данных из vector<string>
|
|||
|---|---|---|---|
|
#18+
GijadНе получается сделать repro в чистом виде, не прикручивая к нему дополнительных библиотек. Продолжая исследовать проблему обнаружил (код собирался с оптимизацией O2): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Если в конструкции закоментировать хотя бы одну строку или 2 сразу ( stmt->execute(("CREATE TABLE " ), то ошибки не происходит. Если во втором цикле не закомментировать хотя бы одной из этих строк данные пропадают. Если закомментировать все строки тоже все норм. Просто нельзя закомментировать DROP TABLE чтобы не получить ошибку БД. А если тут заменить итераторы на const_iterator ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38593891&tid=2019597]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 173ms |

| 0 / 0 |
