<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Трабля</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9214.html</link>
    <description>Шлялся сегфолт по функциям, до белого каления довел, перелопатил все рядом располагающиеся функции.&lt;br&gt;&lt;br&gt;3агнал таки падлюку сежду между двумя псевдо-отладочными вызовами write():&lt;br&gt;в исходниках сразу за write(100300, &quot;1&quot;, 1) идет write(100400, &quot;1&quot;, 1).&lt;br&gt;&lt;br&gt;Кто-то может подсказать в чем трабла ???&lt;br&gt;&lt;br&gt;&lt;br&gt;вывод через strace:&lt;br&gt;&quot;&lt;br&gt;...&lt;br&gt;getpid()                                = 4049&lt;br&gt;chdir(&quot;/home/bla-bla&quot;)                     = 0&lt;br&gt;stat64(&quot;bla-bla/lock&quot;, &#123;st_mode=S_IFREG&amp;#124;0600, st_size=0, ...&#125;) = 0&lt;br&gt;write(100300, &quot;1&quot;, 1)  &lt;br&gt;--- SIGSEGV (Segmentation fault) &#064; 0 (0) ---&lt;br&gt;&quot;&lt;br&gt;&lt;br&gt;вывод через gdb:&lt;br&gt;&quot;&lt;br&gt;Program received signal SIGSEGV, Segmentation fault.&lt;br&gt;0x4e3be25a in ?? ()&lt;br&gt;(gdb) backtrace&lt;br&gt;#0  0x4e3be25a in ?? ()&lt;br&gt;#1  0x400f1273 in write () from /lib/libc.so.6&lt;br&gt;#2  0x00000009 in ?? ()&lt;br&gt;#3  0xbffffe11 in ?? ()&lt;br&gt;#4  0x0804a986 in prep_main (ssn=0x8054a00) at lalala.c:800&lt;br&gt;#5  0x0804aa96 in main () at lalala.c:827&lt;br&gt;&quot;&lt;br&gt;</description>

<item>
    <title>Трабля (Вова)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9214.html#3</link>
    <pubDate>Sat, 06 Aug 2011 14:54:25 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Шлялся сегфолт по функциям, до белого каления довел, перелопатил все рядом располагающиеся &lt;br&gt;&amp;gt;&amp;gt; функции.&lt;br&gt;&amp;gt;&amp;gt; 3агнал таки падлюку сежду между двумя псевдо-отладочными вызовами write(): &lt;br&gt;&amp;gt;&amp;gt; в исходниках сразу за write(100300, &quot;1&quot;, 1) идет write(100400, &quot;1&quot;, 1).&lt;br&gt;&amp;gt;&amp;gt; Кто-то может подсказать в чем трабла ???&lt;br&gt;&amp;gt; Кто такие 100300 и 100400? Что у тебя в /proc/sys/fs/file-max ?&lt;br&gt;&amp;gt; А вообще похоже на то, что ты запахал file descriptor table к &lt;br&gt;&amp;gt; моменту вызова write.&lt;br&gt;&lt;br&gt;Написано же -он так отладку осуществил, думая смотреть стрейсом. Есть код, который падает, он придумал обрамить его данными write в несуществующие дескрипторы. А упало именно в этих вызовах write! И так как упало именно в этих write(), то смыслом и пользой добавления данных вызовов является вытеснение вконтакта и прочих порноресурсов из рабочего времени разработчика. Когда думаешь о работе, часто приходят полезные сопутствующие мысли, которые вполне могут решить поставленную задачу. Как мы видим ниже из признания автора, так и произошло в данном слу</description>
</item>

<item>
    <title>Трабля (nikto)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9214.html#2</link>
    <pubDate>Fri, 05 Aug 2011 18:10:48 GMT</pubDate>
    <description>&amp;gt; Кто такие 100300 и 100400? Что у тебя в /proc/sys/fs/file-max ?&lt;br&gt;&amp;gt; А вообще похоже на то, что ты запахал file descriptor table к &lt;br&gt;&amp;gt; моменту вызова write.&lt;br&gt;&lt;br&gt;Призрачные дескрипторы:&lt;br&gt;&amp;gt;write(100300, &quot;1&quot;, 1) = -1 EBADF (Bad file descriptor)&lt;br&gt;&lt;br&gt;Eсли заменить вызов write() на read(), с заменой соответствующих параметров, картина не меняется.&lt;br&gt;&lt;br&gt;Заработало:&lt;br&gt;в итоге переупорядочил и развернул тело функции prep_main и две ее локальные переменные типа int, char* сделал глобальными.&lt;br&gt;&lt;br&gt;Похоже гороскоп для этой версий libc при старом расположении планет, переменных и функций был составлен не верно. &lt;br&gt;Хотя на других линях и фряхах все пучком было.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Трабля (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9214.html#1</link>
    <pubDate>Fri, 05 Aug 2011 17:44:16 GMT</pubDate>
    <description>&amp;gt; Шлялся сегфолт по функциям, до белого каления довел, перелопатил все рядом располагающиеся &lt;br&gt;&amp;gt; функции.&lt;br&gt;&amp;gt; 3агнал таки падлюку сежду между двумя псевдо-отладочными вызовами write(): &lt;br&gt;&amp;gt; в исходниках сразу за write(100300, &quot;1&quot;, 1) идет write(100400, &quot;1&quot;, 1).&lt;br&gt;&amp;gt; Кто-то может подсказать в чем трабла ???&lt;br&gt;&lt;br&gt;Кто такие 100300 и 100400? Что у тебя в /proc/sys/fs/file-max ?&lt;br&gt;А вообще похоже на то, что ты запахал file descriptor table к моменту вызова write.&lt;br&gt;</description>
</item>

</channel>
</rss>
