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

C++

Войти
Регистрация
Восстановить пароль
 
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 101
#1

Методы защиты данных от записи во время выполнения участка кода? - C++

13.05.2016, 11:26. Просмотров 228. Ответов 10
Метки нет (Все метки)

День добрый, форумчане.
Вводные данные:
- Весь свой код строю на работе с указателями.
- Потоки пока не использую
- Linux, gcc 4.8

Вроде как из за отсутствия многопоточности, шансов, что во время выполнения участка кода использующего указатели, другой код перезапишет данные по этим адресам памяти, нет, но все таки хотелось бы перестраховаться. Может есть какие возможности блокировки данных на время выполнения кода?

Заранее спасибо за толковые советы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2016, 11:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Методы защиты данных от записи во время выполнения участка кода? (C++):

Время выполнения участка кода - C++ Builder
как можно засечь за сколько выполняется (секунды, миллисекунды) участок кода?

Измерять время выполнения участка кода - C++
// Фиксируем начальный момент времени clock_t start = clock(); //участок кода ......................................... ...

Как измерить время выполнения отдельного участка кода? - C++
Собственно возник вопрос, каким образом измерить время выполнения того или инного учатска кода?(На винде)

Можно ли измерить время работы участка кода в тактах процессора? - C++
Если да, то подскажите способ. Важно что бы при измерениях не мерились службы и процессы винды и всего остального.

Измерить время выполнения кода - C++
В C# такая классная вещь есть - Stopwatch, которая могла время измерять. В C++ же кроме clock() из хэдера ctime (что не очень удобно) я...

Время выполнения фрагмента кода - C++
Как измерить время выполнения алгоритма? В темах читал про clock() , сделал, но на выводе всегда 0

10
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,606
14.05.2016, 20:11 #2
Цитата Сообщение от karat39 Посмотреть сообщение
но все таки
но все таки расскажите кто же тогда перезапишет ваши данные по этим адресам памяти?
0
elch10
38 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 168
Завершенные тесты: 2
15.05.2016, 13:23 #3
karat39, кроме тебя никто,vxg, прав
0
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 169
17.05.2016, 09:21 #4
Можете скопировать необходимый диапазон в буфер, после того как изменение завершено (Резервное копирование оставить только для Debug версии). Создать Debug функцию которая будет присутствовать в не Release версии и будет проверять состояние диапазона с буфером. Если проверка не пройдена, данная функция читает с 0 адреса, что вызывает остановку приложения. Вставляете эту функцию в подозрительные места. Отладчик будет показывать вам в каком месте приложение было остановлено, чтобы видеть окружение в котором была произведена нежелательная запись. Если речь была про защиту от других процессов, то это уже другая история.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
17.05.2016, 12:19 #5
Цитата Сообщение от Archi0 Посмотреть сообщение
скопировать необходимый диапазон в буфер
Дамп памяти.
0
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 101
20.05.2016, 10:09  [ТС] #6
Ребята, извините, так и не могу научиться на форуме цитировать ваши сообщения.

Как только перешел во всем коде на указатели, начал ловить ошибку сегментации. gdb меня отправляет на всякие системные библиотеки, толком ничего не говорит. Я поэтому и подумал, что у меня с памятью что то не то. Ошибка плавающая, ловлю до сих пор.
0
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,606
20.05.2016, 10:14 #7
Цитата Сообщение от karat39 Посмотреть сообщение
Как только перешел во всем коде на указатели,
вы просто где то рушите доступ сами. разыменовываете то чего нет или работаете с уже удаленным или удаляете дважды - домовые тут не виноваты. для цитирования - выделите текст и появится рядом с ним кнопочка цитировать (на теле так нельзя и я что бы не лезть в дебри просто тыкаю на ник - тогда вставляется обращение к этому человеку)
1
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
20.05.2016, 10:28 #8
karat39, vxg, как работать в редакторе сообщений.
1
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,606
20.05.2016, 10:42 #9
SatanaXIII, к сожалению информация несколько устаревшая. кнопка цитата.. видимо отделилась кудато
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
20.05.2016, 11:54 #10
vxg, даа, надо как-нибудь на досуге переработать, но всем лень. Х)
0
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 101
20.05.2016, 12:51  [ТС] #11
Цитата Сообщение от vxg Посмотреть сообщение
вы просто где то рушите доступ сами. разыменовываете то чего нет или работаете с уже удаленным или удаляете дважды - домовые тут не виноваты.
спасибо за наводку. Буду разбирать.

Добавлено через 23 секунды
Цитата Сообщение от vxg Посмотреть сообщение
для цитирования - выделите текст и появится рядом с ним кнопочка цитировать (на теле так нельзя и я что бы не лезть в дебри просто тыкаю на ник - тогда вставляется обращение к этому человеку)
спасибо, получилось =)
0
20.05.2016, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2016, 12:51
Привет! Вот еще темы с ответами:

Время выполнения кода ffmpeg - C++
подскажите пожалуйста как будет выглядеть код на измерение времени выполнения работы команды ffmpeg. спасибо.

Библиотеки и методы защиты - C++
Можно ли как-то узнать данные жесткого диска модулем(библиотекой), чтобы в дальнейшем "привязать" библиотеку? И какие виды "привязок" для...

Оценить время выполнения и сложность простейших операций с разными типами данных - C++
Меня интересует-вопрос: можно как-то оценить по-быстрому время, которое программа тратит на различные операции - сравнение, умножение,...

Объяснение участка кода - C++
Здравствуйте.помогите пожалуйста.что означают эти строки? cin >> value; sum += value; count++;


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru