[Lazarus] RedrawMenus function in winceproc.pp - WinCE problem ?

Dimitrios Chr. Ioannidis dioannidis at artesoft.gr
Thu Sep 11 19:58:17 CEST 2008


O/H Felipe Monteiro de Carvalho έγραψε:
> On Thu, Sep 11, 2008 at 1:49 PM, Dimitrios Chr. Ioannidis
> <dioannidis at artesoft.gr> wrote:
>> The exception is gone. I comment out
> 
> No drawbacks? Does the app keep working as expected?
> 
> There are possible drawbacks, the first being a memory leak because
> now the dirty menu list is never cleared.
> 
> I am tempted to simply remove this repaint menu code, but I am afraid
> it may have unpredictable effects near the release.

Well, i don't know LCL internals to agree or disagree but i could not 
test it. A small project with a TMainMenu isn't a test :) And of course 
i would like to know how to test for memory leaks using remote debugger.

>> PS: What about the ability to copy to clipboard the contets of the debug
>> output window ? It will be very handy to be able to copy debuggers
>> information. Should i add a new ticket in the tracker ?
> 
> I added it. Take a look at what I did:

It works. Thx ... Now i can help you more providing you with debug 
output info's like this, where i'm trying to see why ApplicationType 
isn't set correctly in my device :

<-file-exec-and-symbols "E:/Programming/Projects/testLazWince/project1.exe">
^done
<-gdb-set language pascal>
^done
<-environment-cd .>
^done
<-environment-cd "E:/Programming/Projects/testLazWince/">
^done
<-data-evaluate-expression FPC_THREADVAR_RELOCATE_PROC>
&"No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context.\n"
^error,msg="No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context."

< stripped a lot info >

&"info file\n"
~"Symbols from \"E:/Programming/Projects/testLazWince/project1.exe\".\n"
~"Local exec file:\n"
~"\t`E:/Programming/Projects/testLazWince/project1.exe', \n"
~"        file type pei-arm-little.\n"

< stripped a lot info >

<-exec-run>
^running
~"Connectig to remote device...\n"
~"Starting on device: \"\\gdb\\wince-stub.exe \"\n"
~"Accepting connection...\n"
~"Uploading file to device: \\gdb\\project1.exe\n"
~"7fea1000:tshres.96.dll\n"
~"27b1000:shutil.dll\n"
~"7feb1000:shellres.dll.0408.mui\n"
~"7fee1000:shellres.dll\n"
~"7ff41000:tshres.dll.0408.mui\n"
~"7ff61000:tshres.dll\n"
~"2841000:commctrl.dll\n"
~"27e1000:aygshell.dll\n"
~"2361000:oleaut32.dll\n"
~"22f1000:ossvcs.dll\n"
~"2391000:ole32.dll\n"
~"7fff1000:coredll.dll.0408.mui\n"
~"1f61000:coredll.dll\n"
*stopped,thread-id="1",frame={addr="0x00011bdc",func="main",args=[],file="project1.lpr",fullname="E:\\Programming\\Projects\\testLazWince/project1.lpr",line="13"}
<info program>
&"info program\n"
~"\tUsing the running image of child process 361384062.\n"
~"Program stopped at 0x11bdc.\n"
~"It stopped at a breakpoint that has since been deleted.\n"
~"Type \"info stack\" or \"info registers\" for more information.\n"
^done
<-break-insert winceobject.inc:129>
^done,bkpt={number="13",type="breakpoint",disp="keep",enabled="y",addr="0x0013fa58",func="TWINCEWIDGETSET__APPINIT",file="winceobject.inc",line="129",times="0"}
<-break-enable 13>
^done
<-break-insert winceproc.pp:1456>
^done,bkpt={number="14",type="breakpoint",disp="keep",enabled="y",addr="0x001485e8",func="GETWINCEPLATFORM",file="winceproc.pp",line="1456",times="0"}
<-break-enable 14>
^done
<-break-insert winapi.inc:850>
^done,bkpt={number="15",type="breakpoint",disp="keep",enabled="y",addr="0x00074504",func="SYSTEMPARAMETERSINFO",file="winapi.inc",line="850",times="0"}
<-break-enable 15>
^done
<-break-insert intfbasewinapi.inc:1493>
^done,bkpt={number="16",type="breakpoint",disp="keep",enabled="y",addr="0x00038868",func="TWIDGETSET__SYSTEMPARAMETERSINFO",file="intfbasewinapi.inc",line="1493",times="0"}
<-break-enable 16>
^done
<-exec-continue>
^running
*stopped,reason="breakpoint-hit",bkptno="13",thread-id="1",frame={addr="0x0013fa58",func="TWINCEWIDGETSET__APPINIT",args=[{name="SCREENINFO",value="{PIXELSPERINCHX 
= 72, PIXELSPERINCHY = 72, COLORDEPTH = 24, INITIALIZED = 
false}"},{name="this",value="0x96aaa0"}],file="winceobject.inc",line="129"}
<-stack-list-frames 0 0>
^done,stack=[frame={level="0",addr="0x0013fa58",func="TWINCEWIDGETSET__APPINIT",file="winceobject.inc",line="129"}]

< stripped a lot info >

regards,

-- 
Dimitrios Chr. Ioannidis




More information about the Lazarus mailing list