<?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=315330&amp;view=findpost&amp;p=2721799</guid>
        <pubDate>Sat, 09 Oct 2010 14:11:58 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721799</link>
        <description><![CDATA[CodeMonkey: Ответ на этот вопрос зависит от того, кто обрабатывает исключение в DLL.<br><br>Если исключение передаётся вам - его должна поймать EurekaLog. Понятно, что вразумительное сообщение об ошибке при этом будет далеко не всегда. Но у вас будет хотя бы стек вызовов. Только вот сам стек вызовов будет нечитабелен - ведь в DLL, написанной на C++, нет никакой отладочной информации в любом &quot;формате Borland&quot; (map, TD и т.п.).<br><br>Как правило, передавать исключения через границы модулей - плохая идея. Потому что обычно в языке исключение представлено объектом. Программа Delphi не знает, как обращаться с объектами C++, как их читать, как их освобождать (после обработки исключения). Поэтому, DLL обязана обрабатывать все исключения внутри себя, передавая во вне только индикацию ошибки.]]></description>
        <author>CodeMonkey</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721513</guid>
        <pubDate>Sat, 09 Oct 2010 01:27:13 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721513</link>
        <description><![CDATA[northener: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=315330&view=findpost&p=2721507'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>IDontBelieveInSilence &#064; <time class="tag-quote__quoted-time" datetime="2010-10-09T00:14:14+00:00">09.10.10, 00:14</time></span><div class='quote '><br>
&gt;К таким ситуациям нужно себя готовить заранее. EurekaLog, madExcept, JCL (JclDebug + JclHookExcept).<br>
В том то и дело, что в случае с Делфи-оболочкой всё решено именно так - у меня интегрирован EurekaLog, но как быть с dll&#39;ками, которые у меня написаны на С++ в Visual Studio 2008? Есть ли для Visual Studio аналог EurekaLog? </div></div><br>
<br>
Тогда не понятно почему вы задаёте свой вопрос именно тут?<br>
Мы никогда  не отвечали за мелкомягких.<br>
P.S. У них есть свои решения, но это уже не сюда.]]></description>
        <author>northener</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721507</guid>
        <pubDate>Sat, 09 Oct 2010 00:14:14 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721507</link>
        <description><![CDATA[IDontBelieveInSilence: &gt;К таким ситуациям нужно себя готовить заранее. EurekaLog, madExcept, JCL (JclDebug + JclHookExcept).<br>В том то и дело, что в случае с Делфи-оболочкой всё решено именно так - у меня интегрирован EurekaLog, но как быть с dll&#39;ками, которые у меня написаны на С++ в Visual Studio 2008? Есть ли для Visual Studio аналог EurekaLog?]]></description>
        <author>IDontBelieveInSilence</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721460</guid>
        <pubDate>Fri, 08 Oct 2010 22:12:05 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721460</link>
        <description><![CDATA[CodeMonkey: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=315330&view=findpost&p=2721298'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>IDontBelieveInSilence &#064; <time class="tag-quote__quoted-time" datetime="2010-10-08T19:59:47+00:00">08.10.10, 19:59</time></span><div class='quote '>И вот, как мне узнать где именно там произошла ошибка, имея на руках только адрес?</div></div><br>
<br>
Никак. Чтобы это узнать, нужно знать актуальный базовый адрес blabla.dll на машине клиента в момент ошибки.<br>
<br>
Например, адрес ошибки - &#036;05B47A7. blabla.dll была загружена по &#036;0500000. Значит, смещение инструкции кода, вызывавшей ошибку, от начала DLL: &#036;05B47A7 - &#036;0500000 = &#036;B47A7.<br>
<br>
Вы запустили программу у себя, поставили на паузу. На вашей машине blabla.dll имеет базовый адрес &#036;0610000. Тогда вас интересует адрес &#036;0610000 + &#036;B47A7 = &#036;06C47A7.<br>
<br>
К таким ситуациям нужно себя готовить заранее. EurekaLog, madExcept, JCL (JclDebug + JclHookExcept).]]></description>
        <author>CodeMonkey</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721459</guid>
        <pubDate>Fri, 08 Oct 2010 22:10:33 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721459</link>
        <description><![CDATA[northener: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=315330&view=findpost&p=2721298'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>IDontBelieveInSilence &#064; <time class="tag-quote__quoted-time" datetime="2010-10-08T19:59:47+00:00">08.10.10, 19:59</time></span><div class='quote '>Нет, речь идет о баграпортах которые приходят от пользователей.</div></div><br>
Рекомендую http://www.eurekalog.com/index_delphi.php]]></description>
        <author>northener</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721453</guid>
        <pubDate>Fri, 08 Oct 2010 21:51:51 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721453</link>
        <description><![CDATA[Romtek: Адрес ошибки имеет значение только на машине клиента. Так что эта информация, на мой взгляд, пользы не несёт.<br><br>Попробуйте скомпилировать тот модуль (если знаете какой именно или даже все, когда выбора нет) с отладочным журналом (log), ведя учёт времени входа и выхода критических участков кода. Затем попросите клиента прислать вам этот журнал. Нужно знать сначала как воспроизвести ту ошибку, а остальное - дело техники.]]></description>
        <author>Romtek</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721357</guid>
        <pubDate>Fri, 08 Oct 2010 20:45:41 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721357</link>
        <description><![CDATA[Rouse_: Обычно достаточно расрутить стек SEH фреймов. Достаточно грамотный пример идет в составе JEDY библиотеки, там как раз помимо этого показано как работать с линкуемой отладочной информацией и MAP файлом.]]></description>
        <author>Rouse_</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721298</guid>
        <pubDate>Fri, 08 Oct 2010 19:59:47 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721298</link>
        <description><![CDATA[IDontBelieveInSilence: &gt;Пока висит окно - ставьте программу на паузу (вы ведь запускали под отладчиком?), потом Search/Go to address, вводите &#036;05B47A7.<br>Нет, речь идет о баграпортах которые приходят от пользователей. Например, вот, прислали мне скриншот, мол A/V по адресу хххххх в blabla.dll. <br>И вот, как мне узнать где именно там произошла ошибка, имея на руках только адрес?]]></description>
        <author>IDontBelieveInSilence</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721293</guid>
        <pubDate>Fri, 08 Oct 2010 19:56:26 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721293</link>
        <description><![CDATA[CodeMonkey: Пока висит окно - ставьте программу на паузу (вы ведь запускали под отладчиком?), потом Search/Go to address, вводите &#036;05B47A7.]]></description>
        <author>CodeMonkey</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721275</guid>
        <pubDate>Fri, 08 Oct 2010 19:34:41 +0000</pubDate>
        <title>Узнать где произошла ошибка по имеющемуся адресу</title>
        <link>https://forum.sources.ru/index.php?showtopic=315330&amp;view=findpost&amp;p=2721275</link>
        <description><![CDATA[IDontBelieveInSilence: Здравствуйте.<br>Не знал в какой раздел запостить этот топик, но так или иначе.<br>Пишу оболочки на Делфи, и переодически некоторые dll-ки пишу на С++ (посредством Visual Studio), которые в последствии к этой оболочке подключаю. Бывает, в этих dll&#39;ках происходят ошибки, а-ля Access Violation at address 05B47A7 in module &#39;blabla.dll&#39;. Вопрос: как узнать в каком месте в dll&#39;ke произошла ошибка зная адрес(05B47A7) ошибки?]]></description>
        <author>IDontBelieveInSilence</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	