<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: pqxx, оптимизация и Segmentaion fault</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html</link>
    <description>Добрый день.&lt;br&gt;Имеется программа использующая несколько разделяемых библиотек (boost, stlport и др...) и, в том числе, pqxx.&lt;br&gt;Если программу собирать с флагом -O2, то все работает замечательно, а вот если с -O0 то она будет падать с Segmentation Fault и в стеке будет следующее:&lt;br&gt;&lt;br&gt;#0  0x001b043e in malloc_consolidate () from /lib/tls/libc.so.6&lt;br&gt;#1  0x001afa59 in _int_malloc () from /lib/tls/libc.so.6&lt;br&gt;#2  0x001aedfd in malloc () from /lib/tls/libc.so.6&lt;br&gt;#3  0x00e3183f in makeEmptyPGconn () at fe-connect.c:1839&lt;br&gt;#4  0x00e300fe in PQconnectStart (conninfo=0x0) at fe-connect.c:321&lt;br&gt;#5  0x00e300c2 in PQconnectdb (conninfo=0x0) at fe-connect.c:286&lt;br&gt;#6  0x0819ee10 in connection (this=0x9715174, ConnInfo=0x9714530 &quot;dbname=...&quot;) at ../include/pqxx/connection_base.hxx:187&lt;br&gt;...&lt;br&gt;&lt;br&gt;Хотелось бы понять почему так происходит и как это исправить?&lt;br&gt;</description>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (DeadMustdie)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#19</link>
    <pubDate>Fri, 28 Dec 2007 13:43:07 GMT</pubDate>
    <description>&amp;gt;а чем это отличается от переименования класса? &lt;br&gt;&lt;br&gt;Ничем не отличается.&lt;br&gt;&lt;br&gt;&amp;gt;проблема была в том, что я не знал, что есть два класса &lt;br&gt;&amp;gt;с одинаковым именем &lt;br&gt;&lt;br&gt;В стандарте C++ сие именуется &quot;one definition rule&quot; и, по сути дела,&lt;br&gt;оставлено на откуп программиста. Пригодных к использованию инструментов&lt;br&gt;для автоматизации решения такого рода задач (в принципе, смежных с&lt;br&gt;рефакторингом) для C++ я, увы, не видел.&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (crnz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#18</link>
    <pubDate>Fri, 28 Dec 2007 13:10:43 GMT</pubDate>
    <description>&amp;gt;если ваш класс будет сидеть в своём пространстве имён, и для доступа &lt;br&gt;&amp;gt;к нему будет использоваться full qualified name - может быть проблема &lt;br&gt;&amp;gt;решиться сама собой? &lt;br&gt;&lt;br&gt;а чем это отличается от переименования класса?&lt;br&gt;проблема была в том, что я не знал, что есть два класса с одинаковым именем&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (Arifolth)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#17</link>
    <pubDate>Thu, 27 Dec 2007 14:17:58 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Проблема заключалась в том, что было два разных класса с одним названием &lt;br&gt;&amp;gt;&amp;gt;CCriticalSection (один в программе, а один в разделяемой библиотеке).&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Кстати, а есть ли способ заставить компилятор ругаться на такие ситуации, или &lt;br&gt;&amp;gt;это только вручную можно отследить? &lt;br&gt;&lt;br&gt;если ваш класс будет сидеть в своём пространстве имён, и для доступа к нему будет использоваться full qualified name - может быть проблема решиться сама собой?&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (DeadMustdie)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#16</link>
    <pubDate>Thu, 27 Dec 2007 07:03:03 GMT</pubDate>
    <description>&amp;gt;Кстати, а есть ли способ заставить компилятор ругаться на такие ситуации, или &lt;br&gt;&amp;gt;это только вручную можно отследить? &lt;br&gt;&lt;br&gt;К сожалению, описанная проблема может быть отловлена в лучшем случае линкером, а в худшем - никем.&lt;br&gt;Линкер из GNU binutils способен поймать описанную проблему в случае, когда библиотека явно &quot;линкуется&quot; с основной программой и &quot;одноименный&quot; класс имеет хотя бы один не-inline метод. Прочие ситуации - на совести программиста.&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (Michelnok)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#15</link>
    <pubDate>Wed, 26 Dec 2007 16:19:06 GMT</pubDate>
    <description>&amp;gt;Кстати, а есть ли способ заставить компилятор ругаться на такие ситуации...? &lt;br&gt;&lt;br&gt;Вряд ли. Компилятор не знает чего вы хотите, он лишь транслирует код. Может вы хотите именно разные классы использовать?&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (crnz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#14</link>
    <pubDate>Wed, 26 Dec 2007 14:01:00 GMT</pubDate>
    <description>&amp;gt;Проблема заключалась в том, что было два разных класса с одним названием &lt;br&gt;&amp;gt;CCriticalSection (один в программе, а один в разделяемой библиотеке).&lt;br&gt;&lt;br&gt;Кстати, а есть ли способ заставить компилятор ругаться на такие ситуации, или это только вручную можно отследить?&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (crnz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#13</link>
    <pubDate>Wed, 26 Dec 2007 13:08:37 GMT</pubDate>
    <description>Разобрался.&lt;br&gt;&lt;br&gt;Проблема заключалась в том, что было два разных класса с одним названием CCriticalSection (один в программе, а один в разделяемой библиотеке). После переименования одного из классов все стало нормально работать.&lt;br&gt;&lt;br&gt;Спасибо всем за помощь.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (crnz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#12</link>
    <pubDate>Wed, 19 Dec 2007 14:21:30 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;увидел что одна из библиотек (как раз та, где сидит обертка к &lt;br&gt;&amp;gt;мьютексу) собиралась с ключом &lt;br&gt;&amp;gt;-D_GNU_SOURCE &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;пересобрал проект с этим же ключом - все заработало, все проблемы исчезли. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;что за чудеса? GNUшный стандарт компиляции так сильно отличается от того что &lt;br&gt;&amp;gt;по умолчанию? &lt;br&gt;&lt;br&gt;а нет. поторопился я, закралась опция -O2 с которой исчезают проблемы, а -D_GNU_SOURCE не влияет на самом деле.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>pqxx, оптимизация и Segmentaion fault (crnz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7042.html#11</link>
    <pubDate>Wed, 19 Dec 2007 14:14:34 GMT</pubDate>
    <description>стал внимательнее смотреть как собирается проект, и как собирались библиотеки к нему,&lt;br&gt;увидел что одна из библиотек (как раз та, где сидит обертка к мьютексу) собиралась с ключом &lt;br&gt;-D_GNU_SOURCE&lt;br&gt;&lt;br&gt;пересобрал проект с этим же ключом - все заработало, все проблемы исчезли.&lt;br&gt;&lt;br&gt;что за чудеса? GNUшный стандарт компиляции так сильно отличается от того что по умолчанию?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
