<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Looking for addons in wrong directory</title>
		<link>http://www.allegro.cc/forums/view/613920</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 18 Feb 2014 23:24:17 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am currently following a tutorial for Allegro 5 and when trying to use al_draw_text, I get a seg fault. After using gdb, I found that it is looking in my downloads directory for the text addon. Any idea why this would be?</p><p>I am on Linux Mint 16, using g++ 4.8.1 and Allegro 5.0.11.</p><p>GDB output:
</p><div class="source-code snippet"><div class="inner"><pre>Program received <a href="http://www.delorie.com/djgpp/doc/libc/libc_724.html" target="_blank">signal</a> SIGSEGV, Segmentation fault.
<a href="http://www.allegro.cc/manual/al_draw_ustr"><span class="a">al_draw_ustr</span></a> <span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k3">=</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>@entry<span class="k3">=</span><span class="n">0x0</span>, color<span class="k3">=</span>..., x<span class="k3">=</span>x@entry<span class="k3">=</span><span class="n">50</span>, y<span class="k3">=</span><span class="n">50</span>, flags<span class="k3">=</span>flags@entry<span class="k3">=</span><span class="n">0</span>, ustr<span class="k3">=</span><span class="n">0x7fffffffdf80</span><span class="k2">)</span>
    at <span class="k3">/</span>home<span class="k3">/</span>me<span class="k3">/</span>Downloads<span class="k3">/</span>allegro<span class="k3">/</span>addons<span class="k3">/</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k3">/</span>text.c:93
<span class="n">93</span>  <span class="k3">/</span>home<span class="k3">/</span>me<span class="k3">/</span>Downloads<span class="k3">/</span>allegro<span class="k3">/</span>addons<span class="k3">/</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k3">/</span>text.c: No such file <span class="k1">or</span> directory.
</pre></div></div><p>

GDB backtrace:
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#0  al_draw_ustr (font=font@entry=0x0, color=..., x=x@entry=50, y=50, flags=flags@entry=0, ustr=0x7fffffffdf80)</span>
    at <span class="k3">/</span>home<span class="k3">/</span>me<span class="k3">/</span>Downloads<span class="k3">/</span>allegro<span class="k3">/</span>addons<span class="k3">/</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k3">/</span>text.c:93
<span class="p">#1  0x00007ffff76f5183 in al_draw_text (font=0x0, color=..., x=50, y=&lt;optimized out&gt;, flags=0, text=&lt;optimized out&gt;)</span>
    at <span class="k3">/</span>home<span class="k3">/</span>me<span class="k3">/</span>Downloads<span class="k3">/</span>allegro<span class="k3">/</span>addons<span class="k3">/</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k3">/</span>text.c:106
<span class="p">#2  0x0000000000400c41 in main () at main.cpp:29</span>
</pre></div></div><p>

My tutorial file:
</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/allegro.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_native_dialog.h&gt;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</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> NULL<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</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="k2">{</span>
<span class="number"> 10</span>        <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL,
<span class="number"> 11</span>            <span class="s">"failed to initialize allegro!"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 13</span>    <span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</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">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>        <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL,
<span class="number"> 19</span>            <span class="s">"failed to initialize display!"</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 21</span>    <span class="k2">}</span>
<span class="number"> 22</span>
<span class="number"> 23</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="number"> 24</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="number"> 25</span>
<span class="number"> 26</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font24 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-Mono-R.ttf"</span>, <span class="n">24</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</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><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font24, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">50</span>, <span class="n">50</span>, <span class="n">0</span>, <span class="s">"You like my font?"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</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"> 31</span>    <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</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"> 33</span>
<span class="number"> 34</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 35</span><span class="k2">}</span>
</div></div><p>

Makefile:
</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>CXX<span class="k3">=</span>g<span class="k3">+</span><span class="k3">+</span>
<span class="number">  2</span>CFLAGS<span class="k3">=</span>
<span class="number">  3</span>LDFLAGS<span class="k3">=</span><span class="k3">-</span>L<span class="k3">/</span>usr<span class="k3">/</span>lib <span class="k3">-</span>lallegro <span class="k3">-</span>lallegro_dialog <span class="k3">-</span>lallegro_font <span class="k3">-</span>lallegro_ttf
<span class="number">  4</span>INCLUDE<span class="k3">=</span><span class="k3">-</span>I. <span class="k3">-</span>I<span class="k3">/</span>usr<span class="k3">/</span>include<span class="k3">/</span>allegro5
<span class="number">  5</span>
<span class="number">  6</span>OBJS<span class="k3">=</span>main.cpp
<span class="number">  7</span>OUT<span class="k3">=</span>main
<span class="number">  8</span>
<span class="number">  9</span>all: main
<span class="number"> 10</span>
<span class="number"> 11</span>main: $<span class="k2">(</span>OBJS<span class="k2">)</span><span class="k2">;</span> $<span class="k2">(</span>CXX<span class="k2">)</span> $<span class="k2">(</span>OBJS<span class="k2">)</span> <span class="k3">-</span>o $<span class="k2">(</span>OUT<span class="k2">)</span> $<span class="k2">(</span>INCLUDE<span class="k2">)</span> $<span class="k2">(</span>CFLAGS<span class="k2">)</span> $<span class="k2">(</span>LDFLAGS<span class="k2">)</span>
<span class="number"> 12</span>
<span class="number"> 13</span>debug: $<span class="k2">(</span>OBJS<span class="k2">)</span><span class="k2">;</span> $<span class="k2">(</span>CXX<span class="k2">)</span> <span class="k3">-</span>O0 <span class="k3">-</span>g $<span class="k2">(</span>OBJS<span class="k2">)</span> <span class="k3">-</span>o $<span class="k2">(</span>OUT<span class="k2">)</span> $<span class="k2">(</span>INCLUDE<span class="k2">)</span> $<span class="k2">(</span>CFLAGS<span class="k2">)</span> $<span class="k2">(</span>LDFLAGS<span class="k2">)</span>
<span class="number"> 14</span>
<span class="number"> 15</span>clean: <span class="k2">;</span> rm <span class="k3">-</span>rf <span class="k3">*</span>.o main
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (eversojk)</author>
		<pubDate>Tue, 18 Feb 2014 17:48:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Check if the font is actually loaded by verifing the retunr code of <span class="source-code"><a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a></span></p><p>From what you posted it seems that <b>GDB</b> is looking for the source file in your downloads directory (which makes sense after all, I guess), but the SegFault seems due to invalid font pointer...which in turn may be caused by a failed load operation.</p><p>Someone will point out that you should always check return values... <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Tue, 18 Feb 2014 18:10:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks! I thought I had checked it but obviously I didn&#39;t, works fine now!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (eversojk)</author>
		<pubDate>Tue, 18 Feb 2014 18:23:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That no such file or directory message is just gdb looking for the source so it can show the source at the line it crashed at. It&#39;s not a fatal error or related to the crash at all.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 18 Feb 2014 18:24:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It is looking for the source code in the place it was compiled, which may have been on a different machine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 18 Feb 2014 23:24:17 +0000</pubDate>
	</item>
</rss>
