<div dir="ltr"><div><div>Sven:<br><br></div><div>I built the RTL as you instructed:<br><br>make install INSTALL_PREFIX=c:\lazarus\fpc\2.6.4-debug</div><div><br></div>Then I changed a single line in fpc.cfg:<br><br></div>From:<br>
<br>-FuC:\lazarus\fpc\$FPCVERSION/units/$fpctarget/rtl<br><div><br>To:<br><br>-FuC:\lazarus\fpc\$FPCVERSION-debug/units/$fpctarget/rtl<br><br></div><div>But I did not rebuild the compiler, only the RTL.<br><br></div><div>
Now when I run, I still have a single unknown entry in the call stack.  The debugger does now break inside <br></div><div>the RTL source code instead of the assembler windows.<br><br></div><div>What do you think it will take to get the final entry in the call stack to resolve to source code?<br>
<br></div><div>The RTL and LCL is fully shown in the call stack.  What debug code is missing?<br><br></div><div>Another way to interpret this is the function pointer as shown in the line:<br><br> Event(Data);   <br><br></div>
<div>Jonas Maebe thought that somehow the heap has been corrupted. If this is the case, then the function pointer call to function pointer variable Event(Data)<br></div><div>could be the unknown entry in the call stack. [ #1 ?? at :0 ]<br>
<br>(I have a hard time thinking its a call into Win32 with a callback into fpc_ansistr_decr_ref(0xfeeefeee))<br><br></div><div>I am working on the DrMemory/HeapTrc analysis next to see what maybe memory errors could be ocurring.<br>
</div><div><br></div><div></div><div>Your thoughts and anybody else who wants to chime in, please feel free to do so.<br><br></div><div>Thanks to you Sven,<br><br></div><div>Marco<br></div><div><br></div><div>The current call stack of the segment fault is shown below:<br>
</div><div></div><div></div><div><div><div><br>#0 fpc_ansistr_decr_ref(0xfeeefeee) at c:\lazarus\fpc\2.6.4\source\rtl\i386\i386.inc:1526<br>#1 ?? at :0<br>#2 TAPPLICATION__PROCESSASYNCCALLQUEUE(<error reading variable>) at .\include\application.inc:1079<br>
#3 TAPPLICATION__IDLE(true, <error reading variable>) at .\include\application.inc:389<br>#4 TAPPLICATION__HANDLEMESSAGE(<error reading variable>) at .\include\application.inc:1273<br>#5 TAPPLICATION__RUNLOOP(<error reading variable>) at .\include\application.inc:1405<br>
#6 TWIDGETSET__APPRUN(0x427860 <TAPPLICATION__RUNLOOP>, <error reading variable>) at .\include\interfacebase.inc:54<br>#7 TAPPLICATION__RUN(<error reading variable>) at .\include\application.inc:1393<br>
#8 main at rpztestudphv.lpr:28<br><br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 10, 2014 at 2:22 PM, Sven Barth <span dir="ltr"><<a href="mailto:pascaldragon@googlemail.com" target="_blank">pascaldragon@googlemail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 10.08.2014 21:48, mark diener wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sven:<br>
<br>
Thanks for your response.<br>
<br>
I am able to recompile RTL with the following commands issues from an<br>
Admin level DOS prompt:<br>
</blockquote>
<br></div>
You should not need a Command shell with Admin rights.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
make clean<br>
make all OS_TARGET=win32 CPU_TARGET=i386 OPT="-gl -O-"<br>
make install OS_TARGET=win32 CPU_TARGET=i386<br>
<br>
How do I point the compiler to look at the new units/*.ppu<br>
<br>
Currently, the Lazarus 1.2.4/ Fpc 2.6.4 installation puts the stock RTL<br>
units into C:\lazarus\fpc\2.6.4\units\<u></u>i386-win32\<br>
and the newly compiled RTL units into<br>
C:\lazarus\fpc\2.6.4\source\<u></u>rtl\units\i386-win32<br>
</blockquote>
<br></div>
I'd suggest you to install to a custom directory, e.g.:<br>
<br>
make install INSTALL_PREFIX=c:\lazarus\fpc\<u></u>2.6.4-debug<br>
<br>
and copy over the fpc.cfg from c:\lazarus\fpc\2.6.4\bin\i386-<u></u>win32\fpc.cfg to c:\lazarus\fpc\2.6.4-debug\<u></u>bin\i386-win32 and adjust the paths in there. Then you can simply change the compiler executable inside the Lazarus settings.<br>

<br>
Notes:<br>
- you don't need to specify OS_TARGET and CPU_TARGET if they are the same as those of the starting compiler (e.g. you have a i386-win32 compiler installed and thus OS_TARGET and CPU_TARGET will be "win32" and "i386" respectively)<br>

- Lazarus will automatically recompile the LCL and all packages your application uses upon the first compilation after you changed the compiler; thus the compilation might take longer the first time<div class="HOEnZb"><div class="h5">
<br>
<br>
Regards,<br>
Sven<br>
______________________________<u></u>_________________<br>
fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org" target="_blank">fpc-devel@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel" target="_blank">http://lists.freepascal.org/<u></u>cgi-bin/mailman/listinfo/fpc-<u></u>devel</a><br>
</div></div></blockquote></div><br></div>