Форум программистов, компьютерный форум CyberForum.ru

Битовые утечки при записи данных на диск - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builtin функции http://www.cyberforum.ru/cpp/thread1755256.html
Погружение в сабж. Компилятор gcc. Имеет ли смысл вообще их изучать, какие из них действительно надо знать, ибо полезные? И вообще, как можно относиться к их использованию в коде?
C++ Ищу исходники для игры pinball Всем Доброго времени суток ! Есть-ли у кого нибуть исходники для игры pinball (желательно с комментариями) ? Буду очень благодарен если кто-то скинет ! Добавлено через 33 секунды заранее благодарен ! http://www.cyberforum.ru/cpp/thread1754811.html
C++ Опрос про чувствительность к регистру
Языки программирования бывают чувствительные (думаю, большинство) и нечувствительные к регистру букв. Для кого-то удобны вторые языки, кто-то со строгим подходом считает, что первые - это канон, а нечувствительность к регистру переменных/функций развращает мозг прогера. Хотелось бы услышать мнения пользователей CyberForum-а о том, чем хороша/плоха чувствительность/нечувствительность к регистру...
C++ Как запустить проект, используя компилятор LLVM?
Собрал под виндой LLVM. Все вроде нормально. либы есть,хидеры есть, бинари есть. Надо, думаю,попробовать с llvm'овскими либами что-нибудь собрать. полез в инет,все сделал по инструкции. Но в настройках проекта нет ни нужных либ, ни нужных хидеров... печаль. Структура каталогов такова: D:\llvm-3.4 - сорцы ллвм, D:\llvm-build - уже собраное все. Выставил переменную среды...
C++ Найти всевозможные комбинации паролей и сохранить их в блокнот http://www.cyberforum.ru/cpp/thread1753001.html
Нужна помощь, дело такое, поставил на пароль архив, пароль забыл. Но, помню , что пароль состоял из двух основных паролей ( а их всего от 4 до 6, в зависимости от конечных цифр). Методом грубого перебора постоянно сбиваюсь какие пароли уже вводил и тд. Хочу попробовать перебор по словарю, для этого нужно найти всевозможные комбинации паролей и чтоб они сохранились в блокнот.
C++ Умножить две квадратные матрицы, используя ассемблерные вставки Зравствуйте! Требуется написать программу умножения двух квадратных матриц используя ассемблерные вставки и сравнить с обычным умножением в C++ (то есть: a * b). Я написал такой код: #include <iostream> #include <ctime> void multiply(int *a, int *b, int *c, int n) { _asm { MOV EDI, a MOV ESI, b подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17014 / 5419 / 335
Регистрация: 30.03.2009
Сообщений: 14,666
Записей в блоге: 26
15.06.2016, 12:32     Битовые утечки при записи данных на диск
Правильный подход должен выглядеть так
1. Минимизируем текст и переписываем его на Си. Т.е. в идеале оставляем только цикл записи и цикл проверки. Все внешние функции по минимуму (в идеале malloc и printf вместо new и cout)
2. Из-под компилятора получаем ассемблерный файл. Далее учимся этот файл скармливать компилятору. В итоге мы получили текст программы на ассемблере, в котором зафиксирована требуемая последовательность операций, которая предположительно приводит к возникновению ошибки. Таким образом мы максимально отрезались от конкретной версии компилятора и конкретных его опций. Правда минимальная зависимость всё-таки остаётся (в виде вызовов функций malloc и printf), но скорее всего это роли не играет. В любом случае короткий ассемблерный фрагмент могут посмотреть специалисты на предмет того, мало ли тут есть ошибка в коде (и тогда виноватым следует назначить MSVC)
3. Далее зафиксированный ассемблерным текстом подаёшь в другие windows-компиляторы (ну мало ли там особенности с вызовами функций или передаче управления в main). С большой вероятностью на воспроизводимость ошибки это не повлияет, т.к. вероятнее всего для воспроизведения ошибки актуальной является именно последовательность команд
4. Дальше уже можно проводить эксперименты более мелкого уровня. Отдавать этот ассемблерный текст людям, запускать его под другими ОС и т.п. В каждой ОС могут быть свои особенности работы со страницами памяти. Из того, что под другой ОС ошибка не воспроизводится по прежнему никак не следует, что другая ОС работает лучше. Проблема может быть в динамической ситуации, которая наводится особенностями работы со страницами памяти в исходной ОС (типа того, что виртуальные страницы в определённом порядке отобразились на физические страницы)
 
Текущее время: 20:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru