<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>A strange error everytime my proggy ends...</title>
		<link>http://www.allegro.cc/forums/view/616815</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 25 Mar 2017 23:44:52 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m a newbie to Allegro 5.2.2.1 and started with this source:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;allegro5/allegro5.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  6</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  7</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  8</span><span class="c">//#include &lt;iostream&gt;</span>
<span class="number">  9</span><span class="p">#include &lt;string&gt;</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// Is closed automagically at __END__</span>
<span class="number"> 13</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>ev_q <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// Has to be closed before leaving</span>
<span class="number"> 14</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>ev_q<span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 15</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// No need for uninstall...</span>
<span class="number"> 16</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>ev_q , <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// will be unregistered when the event queue is detroyed</span>
<span class="number"> 17</span>
<span class="number"> 18</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>  <span class="c">// Swt aside memory for the event structure</span>
<span class="number"> 19</span>
<span class="number"> 20</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// No need for uninstall...</span>
<span class="number"> 21</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// Is closed automagically at __END__</span>
<span class="number"> 22</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// Is closed automagically at __END__</span>
<span class="number"> 23</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// Is closed automagically at __END__</span>
<span class="number"> 24</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>  <span class="c">// Is closed automagically at __END__</span>
<span class="number"> 25</span>
<span class="number"> 26</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TEXTLOG"><span class="a">ALLEGRO_TEXTLOG</span></a> <span class="k3">*</span>textwindow <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_open_native_text_log"><span class="a">al_open_native_text_log</span></a><span class="k2">(</span><span class="s">"Text output"</span>, ALLEGRO_TEXTLOG_NO_CLOSE<span class="k2">)</span><span class="k2">;</span>  <span class="c">// Closing this is mandatory -)</span>
<span class="number"> 27</span>
<span class="number"> 28</span>  <span class="k1">int</span> number_modes <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>  <a href="http://www.allegro.cc/manual/al_append_native_text_log"><span class="a">al_append_native_text_log</span></a><span class="k2">(</span>textwindow, <span class="s">"Counted %d available display modes\n"</span>, number_modes<span class="k2">)</span><span class="k2">;</span>  <span class="c">// Write to the text log window with this function</span>
<span class="number"> 31</span>
<span class="number"> 32</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> mode<span class="k2">;</span>  <span class="c">// Swt aside memory for the mode structure</span>
<span class="number"> 33</span>
<span class="number"> 34</span>  <span class="k1">int</span> i<span class="k2">;</span>
<span class="number"> 35</span>
<span class="number"> 36</span>  <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>number_modes<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 37</span>  <span class="k2">{</span>
<span class="number"> 38</span>    <a href="http://www.allegro.cc/manual/al_get_display_mode"><span class="a">al_get_display_mode</span></a><span class="k2">(</span>i, <span class="k3">&amp;</span>mode<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>    <a href="http://www.allegro.cc/manual/al_append_native_text_log"><span class="a">al_append_native_text_log</span></a><span class="k2">(</span>textwindow, <span class="s">"width: %d height: %d format: %d refesh rate: %d\n"</span>, mode.width, mode.height, mode.format, mode.refresh_rate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>  <span class="k2">}</span>
<span class="number"> 41</span>
<span class="number"> 42</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_FULLSCREEN_WINDOW<span class="k2">)</span><span class="k2">;</span>  <span class="c">//  Set how your main display shall be displayed</span>
<span class="number"> 43</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> color_bg <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">100</span>,<span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> color_fg1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> color_fg2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">60</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span><span class="c">//  Open the main display. Using bitmaps with the display might be a good choice...</span>
<span class="number"> 48</span><span class="c">//  You should make sure no threads are currently targeting a bitmap which is tied to the display before you destroy it.</span>
<span class="number"> 49</span><span class="c">//  It is mandatory to destroy it before you exit!</span>
<span class="number"> 50</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span>color_bg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>  <a href="http://www.allegro.cc/manual/al_draw_triangle"><span class="a">al_draw_triangle</span></a><span class="k2">(</span><span class="n">100</span>.<span class="n">5</span>, <span class="n">100</span>.<span class="n">5</span>, <span class="n">499</span>.<span class="n">5</span>, <span class="n">100</span>.<span class="n">5</span>, <span class="n">300</span>, <span class="n">499</span>.<span class="n">5</span>, color_fg1, <span class="n">11</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>  <a href="http://www.allegro.cc/manual/al_draw_triangle"><span class="a">al_draw_triangle</span></a><span class="k2">(</span><span class="n">100</span>.<span class="n">5</span>, <span class="n">100</span>.<span class="n">5</span>, <span class="n">499</span>.<span class="n">5</span>, <span class="n">100</span>.<span class="n">5</span>, <span class="n">300</span>, <span class="n">499</span>.<span class="n">5</span>, color_fg2, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>
<span class="number"> 55</span>  <span class="k1">do</span> <span class="k2">{</span>
<span class="number"> 56</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>ev_q , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span>  <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span>ev.type <span class="k3">!</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span><span class="k2">;</span>  <span class="c">// the ANYKEY event ;-)</span>
<span class="number"> 58</span>
<span class="number"> 59</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>  <a href="http://www.allegro.cc/manual/al_close_native_text_log"><span class="a">al_close_native_text_log</span></a><span class="k2">(</span>textwindow<span class="k2">)</span><span class="k2">;</span>  <span class="c">// Necessary...</span>
<span class="number"> 61</span>  <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>ev_q<span class="k2">)</span><span class="k2">;</span>  <span class="c">// Necessary destroy. All event sources are destroyed,too. Emptying the queue first may inhibit nasty warnings/errors (who knows ???</span>
<span class="number"> 62</span>
<span class="number"> 63</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 64</span><span class="k2">}</span>
</div></div><p>

When I run it on the CLI I get this message:<br />Failed to receive messages at scim_bridge_client_read_and_dispatch ()<br />An IOException at scim_bridge_client_deregister_imcontext ()<br />Failed to deregister an IMContext</p><p>With gdb as debugger I can&#39;t reproduce it.<br />The session ends with
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k2">(</span>gdb<span class="k2">)</span> 
<span class="number">  2</span><span class="n">63</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  3</span><span class="k2">(</span>gdb<span class="k2">)</span> 
<span class="number">  4</span><span class="n">64</span>  <span class="k2">}</span>
<span class="number">  5</span><span class="k2">(</span>gdb<span class="k2">)</span> 
<span class="number">  6</span>__libc_start_main <span class="k2">(</span>main<span class="k3">=</span><span class="n">0x8048bcd</span> <span class="k3">&lt;</span>main<span class="k2">(</span><span class="k1">int</span>, <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span><span class="k2">)</span><span class="k3">&gt;</span>, argc<span class="k3">=</span><span class="n">1</span>, argv<span class="k3">=</span><span class="n">0xbffff024</span>, init<span class="k3">=</span><span class="n">0x8048f60</span> <span class="k3">&lt;</span>__libc_csu_init&gt;, fini<span class="k3">=</span><span class="n">0x8048fd0</span> <span class="k3">&lt;</span>__libc_csu_fini&gt;, rtld_fini<span class="k3">=</span><span class="n">0xb7fed160</span> <span class="k3">&lt;</span>_dl_fini&gt;, stack_end<span class="k3">=</span><span class="n">0xbffff01c</span><span class="k2">)</span>
<span class="number">  7</span>    at libc-start.c:321
<span class="number">  8</span><span class="n">321</span>  libc-start.c: Datei oder Verzeichnis nicht gefunden.
<span class="number">  9</span><span class="k2">(</span>gdb<span class="k2">)</span> 
<span class="number"> 10</span><span class="k2">[</span>Thread <span class="n">0xb6c1cb40</span> <span class="k2">(</span>LWP <span class="n">23019</span><span class="k2">)</span> exited<span class="k2">]</span>
<span class="number"> 11</span><span class="k2">[</span>Thread <span class="n">0xb4affb40</span> <span class="k2">(</span>LWP <span class="n">23029</span><span class="k2">)</span> exited<span class="k2">]</span>
<span class="number"> 12</span><span class="k2">[</span>Thread <span class="n">0xb54ffb40</span> <span class="k2">(</span>LWP <span class="n">23028</span><span class="k2">)</span> exited<span class="k2">]</span>
<span class="number"> 13</span><span class="k2">[</span>Thread <span class="n">0xb5ea0b40</span> <span class="k2">(</span>LWP <span class="n">23027</span><span class="k2">)</span> exited<span class="k2">]</span>
<span class="number"> 14</span><span class="k2">[</span>Inferior <span class="n">1</span> <span class="k2">(</span>process <span class="n">23001</span><span class="k2">)</span> exited normally<span class="k2">]</span>
<span class="number"> 15</span><span class="k2">(</span>gdb<span class="k2">)</span> 
<span class="number"> 16</span>The program is <span class="k1">not</span> being run.
<span class="number"> 17</span><span class="k2">(</span>gdb<span class="k2">)</span> quit
</div></div><p>

The script does <b>exactly</b> what it should do according to documentation snippets I got mostly from this site.</p><p>It just irks me that SCIM is interfering with Allegro.</p><p>My compile script is
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#!/bin/bash</span>
echo <span class="s">"*** starting preprocessing... ***"</span>
g<span class="k3">+</span><span class="k3">+</span> <span class="k3">-</span>Wall <span class="k3">-</span>Wextra <span class="k3">-</span>E <span class="k3">-</span>dP <span class="k3">-</span>ggdb <span class="k3">-</span>o allegro_0.2.ii allegro_0.2.cpp `pkg-config <span class="k3">-</span><span class="k3">-</span>cflags <span class="k3">-</span><span class="k3">-</span>libs allegro-5 allegro_main-5 allegro_primitives-5 allegro_dialog-5 allegro_image-5 allegro_ttf-5 allegro_color-5 allegro_font-5`
echo <span class="s">"*** starting compiler step... ***"</span>
g<span class="k3">+</span><span class="k3">+</span> <span class="k3">-</span>Wall <span class="k3">-</span>Wextra <span class="k3">-</span>dP <span class="k3">-</span>ggdb <span class="k3">-</span>S allegro_0.2.ii <span class="k3">-</span>o allegro_0.2.s `pkg-config <span class="k3">-</span><span class="k3">-</span>cflags <span class="k3">-</span><span class="k3">-</span>libs allegro-5 allegro_main-5 allegro_primitives-5 allegro_dialog-5 allegro_image-5 allegro_ttf-5 allegro_color-5 allegro_font-5`
echo <span class="s">"*** starting linker step... ***"</span>
g<span class="k3">+</span><span class="k3">+</span> <span class="k3">-</span>Wall <span class="k3">-</span>Wextra <span class="k3">-</span>dP <span class="k3">-</span>ggdb <span class="k3">-</span>o allegro_0.2 allegro_0.2.s `pkg-config <span class="k3">-</span><span class="k3">-</span>cflags <span class="k3">-</span><span class="k3">-</span>libs allegro-5 allegro_main-5 allegro_primitives-5 allegro_dialog-5 allegro_image-5 allegro_ttf-5 allegro_color-5 allegro_font-5`
<span class="p">#./allegro1</span>
</pre></div></div><p>
Thanks in advance for input.</p><p>AHJ (washuu_de)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (washuu_de)</author>
		<pubDate>Sat, 25 Mar 2017 04:56:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmmm, I think the display is kind of important. My guess might be that you should create the display before some other stuff... Not sure that should matter. Does the program work properly until a key is pressed?</p><p>As a side note, its rare to output preprocessed source or assembly. Shouldn&#39;t hurt, but a bit strange. Typically people save the objects (-c), but that&#39;s to save recompiling them. Just curious what the rationale is.</p><p>The GDB error suggests you&#39;re trying to step into code that you don&#39;t have source/debug symbols for. Are you trying to step into third party code?</p><p>I&#39;m not sure what SCIM is...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Sat, 25 Mar 2017 06:29:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If I don&#39;t open the textlog window and the display window at the same time<br />the error message disappears.<br />I think when I need info that now goes into the textlog window I&#39;ll write it into a textfile<br />or I display the textlog after I&#39;ve closed the display. Then I &lt;al_rest&gt; long enough to take a screenshot.</p><p>The program works properly. The message is written when the instruction pointer leaves main at the &lt;}&gt;.</p><p>SCIM is an input method. I use it to write in Japanese on my German keyboard.<br />Edit: I&#39;m using Ubuntu 14.04 (Trusty Tahr).</p><p>About the 3-step compile-link sequence: I want to see all the structures I included<br />from the header files. It was nice when I immediately found out why ALLEGRO_DIRECT3D<br />didn&#39;t work as display flag. It was renamed to ALLEGRO_DIRECT3D_INTERNAL<br />in my version (5.2.2.0)<br />So the documentation for &lt;al_set_new_display_flags&gt; isn&#39;t correct for my version.<br />I&#39;ll remove the step that gives me the assembler code because I&#39;m not good at reading assembler, anyway.</p><p>AHJ
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (washuu_de)</author>
		<pubDate>Sat, 25 Mar 2017 23:44:52 +0000</pubDate>
	</item>
</rss>
