<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808688</guid>
        <pubDate>Thu, 29 Aug 2019 18:03:49 +0000</pubDate>
        <title>Выход за границы переменной (или массива)</title>
        <link>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808688</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415542&view=findpost&p=3808664'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2019-08-29T17:27:22+03:00">29.08.19, 14:27</time></span><div class='quote '>Можно обязать сделать сие (адреса рядом),</div></div><br>
Переменные будут рядом, если они просто по тексту программы будут рядом.<br>
В этом можно будет на всякий случай убедиться, просто выводя их адреса.<br>
---<br>
Используя статьи:<br>
<a class='tag-url' href='https://habr.com/ru/post/154847/' target='_blank'>Пишем свой отладчик под Windows [часть 1]</a><br>
<a class='tag-url' href='https://habr.com/ru/post/190800/' target='_blank'>Пишем свой отладчик под Windows [часть 2]</a><br>
<a class='tag-url' href='https://www.codeproject.com/Articles/43682/Writing-a-basic-Windows-debugger' target='_blank'>Writing Windows Debugger - Part 1</a><br>
<a class='tag-url' href='https://www.codeproject.com/Articles/132742/Writing-Windows-Debugger-Part-2' target='_blank'>Writing Windows Debugger - Part 2</a><br>
<a class='tag-url' href='https://habr.com/ru/post/178007/' target='_blank'>Изучаем отладчик, часть первая</a><br>
<a class='tag-url' href='https://habr.com/ru/post/178159/' target='_blank'>Изучаем отладчик, часть вторая</a><br>
<a class='tag-url' href='https://habr.com/ru/post/178183/' target='_blank'>Изучаем отладчик, часть третья</a><br>
<br>
пишем свой собственный отладчик.<br>
Ставим ВР на адрес памяти переменной X.<br>
Будем получать события, выбирать из них работу именно<br>
с этой переменной, читать её и сравнивать результат с допустимым.<br>
Как только результат не понравится, считаем контекст и, таким образом,<br>
узнаем адрес выполнения в программе, откуда произошла неправильная коррекция<br>
переменной. Заодно сравним этот адрес с адресом (адресами) откуда производилась<br>
правильная коррекция переменной. Ещё можно спасти кусок образа памяти, вокруг<br>
адреса места неправильного вызова. Что, возможно, облегчит поиск паталогии<br>
в исходных текстах.<br>
---<br>
Если всё получится (как описано в статьях) это будет очень полезный инструмент.]]></description>
        <author>ЫукпШ</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808664</guid>
        <pubDate>Thu, 29 Aug 2019 14:27:22 +0000</pubDate>
        <title>Выход за границы переменной (или массива)</title>
        <link>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808664</link>
        <description><![CDATA[Славян: Можно обязать сделать сие (адреса рядом), засунув X и X_debug в структуру, а её сделав параллельной с объединением <em class='tag-i'>union</em>. ;)<br>
Типа:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">union</div><div class="code_line">{</div><div class="code_line">&nbsp;struct { var X, X_debug; };</div><div class="code_line">&nbsp;char a[N];</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Славян</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808530</guid>
        <pubDate>Thu, 29 Aug 2019 04:38:32 +0000</pubDate>
        <title>Выход за границы переменной (или массива)</title>
        <link>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808530</link>
        <description><![CDATA[BenGan: Идея интересная, если сработает то, что редом описанные переменные будут иметь соседние адреса.]]></description>
        <author>BenGan</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808262</guid>
        <pubDate>Tue, 27 Aug 2019 15:08:25 +0000</pubDate>
        <title>Выход за границы переменной (или массива)</title>
        <link>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808262</link>
        <description><![CDATA[Славян: Завести (если можно) внаглую левую переменную с адресом за адресом X и поставить в отладке слежение за её изменением. Тогда выход поймается.]]></description>
        <author>Славян</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808177</guid>
        <pubDate>Tue, 27 Aug 2019 05:04:54 +0000</pubDate>
        <title>Выход за границы переменной (или массива)</title>
        <link>https://forum.sources.ru/index.php?showtopic=415542&amp;view=findpost&amp;p=3808177</link>
        <description><![CDATA[BenGan: Всем привет&#33;<br>Борюсь с ошибкой которая возникает в расчетной программе через много часов работы. (С++ Builder 6.0)<br>Удалось подсмотреть, что переменная, назовем ее X, иногда принимает совершенно неосмысленные значения типа NAD.<br><br>Возникло подозрение, что кто-то, возможно, массив, выходит за дозволенные границы. Как найти возможных кандидатов? <br>Как найти переменные от адреса переменой X и ниже?<br><br>PS: Code Guard ничего не дал, многочасовое висение &#39;On Change&#39; на переменной X тоже ничего не дало.]]></description>
        <author>BenGan</author>
        <category>Borland C++ Builder/Turbo C++ Explorer</category>
      </item>
	
      </channel>
      </rss>
	