Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 726
1

Разные значения в дебаге и релизе

23.02.2017, 15:47. Показов 3104. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем в чем суть, пишу игру, участок сетевого кода написан с помощью sfml.
В дебаге программа не работает, потому что изходящие и входяшие пакеты различаются по размеру. В релизе размер пакетов совпадает и сеть работает. По этому приходится отлаживать в релизе. Но проблема в том что приходит не верное значение.
В дебаге, на отправку значение запаковывается верное, а в релизе не могу проследить этот момент, именно момент упаковки значения в пакет, отладчик пропускает этот код. Я знаю что он пропускает код из-за сжатия кода и "ненужный" по мнению отладчика выкидывается, однако в дебаге я не могу проверить какое бы значение пришло, т.к. размер исхояшего и входяшего пакета разные и пакет забраковывается.

Разные значения в дебаге и релизе


Я думаю что этот участок забраковывается потому что отладчик не может установить дальнейшую связь в использовании этого значения. Потому что далее связь устанаваливается, с дальнейшим кодом программы, через интернет. Я объявил ключевую переменную как volatile, в настройках проекта поставил "без оптимизации всей программы", однако он продолжает пропускать этот участок.

Объясните пожалуйста, как это можно решить?
Объясните хотя бы причины такого странного поведения, если я не прав в своих догадках, очень надеюсь на ваше понимание, это мой первый проект.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2017, 15:47
Ответы с готовыми решениями:

Ошибка выхода за пределы памяти в дебаге, в релизе ОК
Пишу код, "для себя", так скажем. пытаюсь практиковаться. Балуюсь, другими словами. В релизе то,...

Программа работает в дебаге, но не работает в релизе
Программа должна отключать пк, через заданое время, командой консоли shutdown. public...

Программа при релизе не работает, а при дебаге работает
#include<iostream>; #include <iomanip> #include<fstream> using namespace std; void printMatrix...

Разные результаты работы при обычном запуске и при дебаге (использование dll)
Есть dll, в ней есть процедура и функция, которые мне надо использовать procedure SetStr(aStr :...

43
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
10.03.2017, 05:12 41
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от nd2 Посмотреть сообщение
Самое интересное, что если в его проекте (ссылку на который он выкладывал) то же самое, в начале main(), прописать, и заменить в настройках имя либы, то ошибки, при вызове toString(), в начале main() не возникает. Что тут на что влияет - я не понял. Можт это UB так проявляется?
Причина была в том, что проект, с файлами ТС, создавался с использованием NuGet.
Если же всё подключать вручную, то ошибка возникает и в проекте ТС. Причина описана в 37 посте.
1
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 726
15.03.2017, 13:06  [ТС] 42
Цитата Сообщение от hoggy Посмотреть сообщение
хз, что он там выкладывал,
но то, что он прислал в личке - полный бред.
Вы просили ссылку на проект я проект и отправил. То как VS его и хранит.
Вы на полном серьезе хотите чтобы я вам всю VS2015 отправил? что весит больше 4 гиг?

Цитата Сообщение от nd2 Посмотреть сообщение
Наконец, удалось получить эту ошибку (скрин). Возникает в коде, что на скрине в 31 посте, при вызове toString(), если в Debug прописать: Компоновщик - Ввод - Дополнительные зависимости, вместо debug-либы: sfml-network-d.lib, release-либу: sfml-network.lib.
Я с вас поражаюсь, можно было бы спокойно оставить этот вопрос, если я уже написал обходной путь... Спасибо конечно, что вы продолжаете помогать (как я могу быть против?), но вот после 11-го сообщения, я переназначил все отдельно для дебага и для релиза.. поменял либы.. Это показал в скриншоте 18-го сообщения. Там видно что для дебага стоит sfml-network-d.lib. Однако это не помогало, дебаг-либа стоит и сейчас в основном проекте. Однако замечу что ошибка действительно пропала в на том коротком участке кода. что в сообщении 31. Там правда стояла релиз-либа. Там я проморгал этот момент..

Я пока не могу проверить, будет ли ошибка до сихпор в основном проекте, или нет. Потом проверю и отвечу. Скорей всего будет, потому что я ничего не менял, а либы в дебаге стоят нужные (дебаг).
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.03.2017, 14:45 43
Цитата Сообщение от koker007 Посмотреть сообщение
Вы на полном серьезе хотите чтобы я вам всю VS2015 отправил? что весит больше 4 гиг?
я предложил выслать вам проект.
а не его обломки
и не студию.
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
16.03.2017, 18:08 44
Цитата Сообщение от koker007 Посмотреть сообщение
Я с вас поражаюсь, можно было бы спокойно оставить этот вопрос, если я уже написал обходной путь...
Мне просто самому было интересно найти причину (для кода, именно, в 31 посте), и я её (для себя) нашёл: toString() оказалась не при чём.
Цитата Сообщение от koker007 Посмотреть сообщение
Однако замечу что ошибка действительно пропала в на том коротком участке кода. что в сообщении 31. Там правда стояла релиз-либа. Там я проморгал этот момент..
Добавлено через 19 часов 59 минут
Цитата Сообщение от koker007 Посмотреть сообщение
Я пока не могу проверить, будет ли ошибка до сихпор в основном проекте, или нет. Потом проверю и отвечу. Скорей всего будет, потому что я ничего не менял, а либы в дебаге стоят нужные (дебаг).
А, раз, toString() нормально работает, то, значит, и в react_in_pack() она не является причиной ошибки.
0
16.03.2017, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2017, 18:08
Помогаю со студенческими работами здесь

Atmega 32 (Atmel Studio 6). При дебаге не меняются значения портов
Доброго времени суток. Начал изучать программирование под микроконтроллеры. Имею стаж...

Программа работает, но выводит разные значения Sx и Yx (значения должны быть одинаковыми)
#include <stdio.h> #include <iostream> #include <math.h> #pragma warning(disable : 4996) int...

Разные значения
Доброго времени суток. Столкнулся тут с проблемой. В Mathcad последние расчеты (C, F, N, \Delta)...

Разные значения
Вот функция: $.each(el.items, function(index1, item) { itemsHumans += '<li...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru