[fpc-pascal] SQLdb: problem using GDB, but do not have memleak

Marcos Douglas md at delfire.net
Wed Mar 21 13:49:53 CET 2012


On Tue, Mar 20, 2012 at 6:27 PM, Martin <lazarus at mfriebe.de> wrote:
> On 20/03/2012 12:08, Marcos Douglas wrote:
>>
>> Hi,
>>
>> I was testing the new connector to MSSQL when I found a problem.
>> If I compile and run in console, I have no memleak. Good. But if I put
>> a breakpoint in AConnection.Free; and press F8, I got this:
>>
>> ERROR
>> ,msg="Warning:\nCannot insert breakpoint -237.\nError accessing memory
>> address 0x7816cd30: Input/output error.\n"
>>
>
> Does the issue happen the first time you press F8, or to you have to press a
> 2nd time?

When I press a first time... but I think some times in a 2nd time.  =|

> In other words: Is it possble the debugger pauses inside free (possible in a
> dll) and that when you hit F8 then, it can not step, because the dll has no
> debug info?

Yes, I think is possible...

> If in stopped in the DLL, it might still put the green arrow on your source
> => first stack with frame debug info...
>
> Open and watch the stack window.
>
> ---
> Also open the "debug output" window. Open this one before you start your
> app. Then copy the content.

The content was copied below.

> ---
> If indeed gdb stops inside a dll, then F8 simply can not work

====================================================

<-file-exec-and-symbols "W:/md/dev/freepascal/lib/gh/bin/dbtest.exe">
^done
(gdb)
<-gdb-set language pascal>
^done
(gdb)
<-environment-cd .>
^done
(gdb)
<-environment-cd "W:/md/dev/freepascal/lib/gh/bin/">
^done
(gdb)
<-data-evaluate-expression FPC_THREADVAR_RELOCATE_PROC>
^done,value="0x0"
(gdb)
<-exec-arguments >
^done
(gdb)
<-gdb-set language pascal>
^done
(gdb)
<ptype TObject>
&"ptype TObject\n"
~"type = TOBJECT = class \n"
~"  public\n"
~"    constructor CREATE (TOBJECT, POINTER) : TOBJECT;\n"
~"    destructor  ~DESTROY (TOBJECT, POINTER); virtual;\n"
~"    function  NEWINSTANCE (unnamedtype) : TOBJECT; virtual;\n"
~"    procedure FREEINSTANCE (TOBJECT); virtual;\n"
~"    function  SAFECALLEXCEPTION (TOBJECT, TOBJECT, POINTER) :
HRESULT; virtual;\n"
~"    procedure DEFAULTHANDLER (TOBJECT, var); virtual;\n"
~"    procedure FREE (TOBJECT);\n"
~"    function  INITINSTANCE (unnamedtype, POINTER) : TOBJECT;\n"
~"    procedure CLEANUPINSTANCE (TOBJECT);\n"
~"    function  CLASSTYPE (unnamedtype) : TCLASS;\n"
~"    function  CLASSINFO (unnamedtype) : POINTER;\n"
~"    function  CLASSNAME (unnamedtype, SHORTSTRING) : SHORTSTRING;\n"
~"    function  CLASSNAMEIS (unnamedtype, SHORTSTRING) : BOOLEAN;\n"
~"    function  CLASSPARENT (unnamedtype) : TCLASS;\n"
~"    function  INSTANCESIZE (unnamedtype) : LONGINT;\n"
~"    function  INHERITSFROM (unnamedtype, TCLASS) : BOOLEAN;\n"
~"    function  STRINGMESSAGETABLE (unnamedtype) : PSTRINGMESSAGETABLE;\n"
~"    function  METHODADDRESS (unnamedtype, SHORTSTRING) : POINTER;\n"
~"    function  METHODNAME (unnamedtype, POINTER, SHORTSTRING) : SHORTSTRING;\n"
~"    function  FIELDADDRESS (TOBJECT, SHORTSTRING) : POINTER;\n"
~"    procedure AFTERCONSTRUCTION (TOBJECT); virtual;\n"
~"    procedure BEFOREDESTRUCTION (TOBJECT); virtual;\n"
~"    procedure DEFAULTHANDLERSTR (TOBJECT, var); virtual;\n"
~"    procedure DISPATCH (TOBJECT, var); virtual;\n"
~"    procedure DISPATCHSTR (TOBJECT, var); virtual;\n"
~"    function  GETINTERFACE (TOBJECT, TGUID, out) : BOOLEAN;\n"
~"    function  GETINTERFACEBYSTR (TOBJECT, SHORTSTRING, out) : BOOLEAN;\n"
~"    function  GETINTERFACEWEAK (TOBJECT, TGUID, out) : BOOLEAN;\n"
~"    function  GETINTERFACEENTRY (unnamedtype, TGUID) : PINTERFACEENTRY;\n"
~"    function  GETINTERFACEENTRYBYSTR (unnamedtype, SHORTSTRING) :
PINTERFACEENTRY;\n"
~"    function  GETINTERFACETABLE (unnamedtype) : PINTERFACETABLE;\n"
~"    function  UNITNAME (unnamedtype, ANSISTRING) : ANSISTRING;\n"
~"    function  EQUALS (TOBJECT, TOBJECT) : BOOLEAN; virtual;\n"
~"    function  GETHASHCODE (TOBJECT) : LONGINT; virtual;\n"
~"    function  TOSTRING (TOBJECT, ANSISTRING) : ANSISTRING; virtual;\n"
~"end\n"
^done
(gdb)
<ptype Exception>
&"ptype Exception\n"
~"type = EXCEPTION = class : public TOBJECT \n"
~"  private\n"
~"    FMESSAGE : ANSISTRING;\n"
~"    FHELPCONTEXT : LONGINT;\n"
~"\n"
~"  public\n"
~"    constructor CREATE (EXCEPTION, POINTER, ANSISTRING) : ^EXCEPTION;\n"
~"    constructor CREATEFMT (EXCEPTION, POINTER, ANSISTRING,
unnamedtype, LONGINT) : ^EXCEPTION;\n"
~"    constructor CREATERES (EXCEPTION, POINTER, PSTRING) : ^EXCEPTION;\n"
~"    constructor CREATERESFMT (EXCEPTION, POINTER, PSTRING,
unnamedtype, LONGINT) : ^EXCEPTION;\n"
~"    constructor CREATEHELP (EXCEPTION, POINTER, ANSISTRING, LONGINT)
: ^EXCEPTION;\n"
~"    constructor CREATEFMTHELP (EXCEPTION, POINTER, ANSISTRING,
unnamedtype, LONGINT, LONGINT) : ^EXCEPTION;\n"
~"    constructor CREATERESHELP (EXCEPTION, POINTER, PSTRING, LONGINT)
: ^EXCEPTION;\n"
~"    constructor CREATERESFMTHELP (EXCEPTION, POINTER, PSTRING,
unnamedtype, LONGINT, LONGINT) : ^EXCEPTION;\n"
~"end\n"
^done
(gdb)
<ptype Shortstring>
&"ptype Shortstring\n"
~"type = SHORTSTRING = record \n"
~"    length : BYTE;\n"
~"    st : array [1..255] of CHAR;\n"
~"end\n"
^done
(gdb)
<ptype pointer>
&"ptype pointer\n"
~"type = ^POINTER\n"
^done
(gdb)
<ptype byte>
&"ptype byte\n"
~"type = BYTE\n"
^done
(gdb)
<info file>
&"info file\n"
~"Symbols from \"w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dbtest.exe\".\n"
~"Local exec file:\n"
~"\t`w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dbtest.exe', file type pei-i386.\n"
~"\tEntry point: 0x471e50\n"
~"\t0x00401000 - 0x00471e90 is .text\n"
~"\t0x00472000 - 0x0048abec is .data\n"
~"\t0x0048b000 - 0x0048fb94 is .bss\n"
~"\t0x00491000 - 0x00491b34 is .idata\n"
^done
(gdb)
<-data-evaluate-expression sizeof(POINTER)>
^done,value="4"
(gdb)
<-break-insert +0>
^done,bkpt={number="12",type="breakpoint",disp="keep",enabled="y",addr="0x004016d8",func="EXECSELECT",file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="28",times="0",original-location="dbtest.pas:28"}
(gdb)
<-break-insert main>
^done,bkpt={number="13",type="breakpoint",disp="keep",enabled="y",addr="0x004017d1",func="main",file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="37",times="0",original-location="main"}
(gdb)
<-break-insert *4660816>
^done,bkpt={number="14",type="breakpoint",disp="keep",enabled="y",addr="0x00471e50",func="_FPC_MAINCRTSTARTUP",file="sysinitpas.pp",fullname="w:\\md\\dev\\freepascal\\compiler\\2.6.1\\rtl\\win32\\sysinitpas.pp",line="30",times="0",original-location="*4660816"}
(gdb)
<-exec-run>
=thread-group-started,id="i1",pid="4220"
=thread-created,id="1",group-id="i1"
~"[New Thread 4220.0xe88]\n"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="C:\\WINDOWS\\system32\\ntdll.dll",target-name="C:\\WINDOWS\\system32\\ntdll.dll",host-name="C:\\WINDOWS\\system32\\ntdll.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\kernel32.dll",target-name="C:\\WINDOWS\\system32\\kernel32.dll",host-name="C:\\WINDOWS\\system32\\kernel32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\oleaut32.dll",target-name="C:\\WINDOWS\\system32\\oleaut32.dll",host-name="C:\\WINDOWS\\system32\\oleaut32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\advapi32.dll",target-name="C:\\WINDOWS\\system32\\advapi32.dll",host-name="C:\\WINDOWS\\system32\\advapi32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\rpcrt4.dll",target-name="C:\\WINDOWS\\system32\\rpcrt4.dll",host-name="C:\\WINDOWS\\system32\\rpcrt4.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\secur32.dll",target-name="C:\\WINDOWS\\system32\\secur32.dll",host-name="C:\\WINDOWS\\system32\\secur32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\gdi32.dll",target-name="C:\\WINDOWS\\system32\\gdi32.dll",host-name="C:\\WINDOWS\\system32\\gdi32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\user32.dll",target-name="C:\\WINDOWS\\system32\\user32.dll",host-name="C:\\WINDOWS\\system32\\user32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\msvcrt.dll",target-name="C:\\WINDOWS\\system32\\msvcrt.dll",host-name="C:\\WINDOWS\\system32\\msvcrt.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\ole32.dll",target-name="C:\\WINDOWS\\system32\\ole32.dll",host-name="C:\\WINDOWS\\system32\\ole32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\imm32.dll",target-name="C:\\WINDOWS\\system32\\imm32.dll",host-name="C:\\WINDOWS\\system32\\imm32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\lpk.dll",target-name="C:\\WINDOWS\\system32\\lpk.dll",host-name="C:\\WINDOWS\\system32\\lpk.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\usp10.dll",target-name="C:\\WINDOWS\\system32\\usp10.dll",host-name="C:\\WINDOWS\\system32\\usp10.dll",symbols-loaded="0",thread-group="i1"
*stopped,reason="breakpoint-hit",disp="keep",bkptno="14",frame={addr="0x00471e50",func="_FPC_MAINCRTSTARTUP",args=[],file="sysinitpas.pp",fullname="w:\\md\\dev\\freepascal\\compiler\\2.6.1\\rtl\\win32\\sysinitpas.pp",line="30"},thread-id="1",stopped-threads="all"
(gdb)
<-break-delete 13>
^done
(gdb)
<-break-delete 14>
^done
(gdb)
<-break-delete 12>
^done
(gdb)
<info program>
&"info program\n"
~"\tUsing the running image of child Thread 4220.0xe88.\n"
~"Program stopped at 0x471e50.\n"
~"It stopped at a breakpoint that has since been deleted.\n"
~"Type \"info stack\" or \"info registers\" for more information.\n"
^done
(gdb)
<info address FPC_RAISEEXCEPTION>
&"info address FPC_RAISEEXCEPTION\n"
~"Symbol \"FPC_RAISEEXCEPTION\" is at 0x40b070 in a file compiled
without debugging.\n"
^done
(gdb)
<-break-insert *4239472>
^done,bkpt={number="15",type="breakpoint",disp="keep",enabled="y",addr="0x0040b070",func="fpc_raiseexception",file="W:/md/dev/freepascal/compiler/2.6.1/rtl/inc/except.inc",fullname="w:\\md\\dev\\freepascal\\compiler\\2.6.1\\rtl\\inc\\except.inc",line="191",times="0",original-location="*4239472"}
(gdb)
<info address FPC_BREAK_ERROR>
&"info address FPC_BREAK_ERROR\n"
~"Symbol \"FPC_BREAK_ERROR\" is at 0x40cef0 in a file compiled without
debugging.\n"
^done
(gdb)
<-break-insert *4247280>
^done,bkpt={number="16",type="breakpoint",disp="keep",enabled="y",addr="0x0040cef0",func="HANDLEERRORADDRFRAME",file="W:/md/dev/freepascal/compiler/2.6.1/rtl/inc/system.inc",fullname="w:\\md\\dev\\freepascal\\compiler\\2.6.1\\rtl\\inc\\system.inc",line="962",times="0",original-location="*4247280"}
(gdb)
<info address FPC_RUNERROR>
&"info address FPC_RUNERROR\n"
~"Symbol \"FPC_RUNERROR\" is at 0x40cfe0 in a file compiled without
debugging.\n"
^done
(gdb)
<-break-insert *4247520>
^done,bkpt={number="17",type="breakpoint",disp="keep",enabled="y",addr="0x0040cfe0",func="RUNERROR",file="W:/md/dev/freepascal/compiler/2.6.1/rtl/inc/system.inc",fullname="w:\\md\\dev\\freepascal\\compiler\\2.6.1\\rtl\\inc\\system.inc",line="1007",times="0",original-location="*4247520"}
(gdb)
<-symbol-list-lines W:\md\dev\freepascal\lib\gh\examples\db\mssql\dbtest.pas>
^done,lines=[{pc="0x00401640",line="21"},{pc="0x0040164c",line="21"},{pc="0x00401678",line="22"},{pc="0x0040167f",line="23"},{pc="0x0040169d",line="24"},{pc="0x004016bb",line="25"},{pc="0x004016d0",line="26"},{pc="0x004016d8",line="28"},{pc="0x0040174b",line="29"},{pc="0x00401769",line="32"},{pc="0x00401785",line="34"},{pc="0x004017ad",line="34"},{pc="0x004017c0",line="36"},{pc="0x004017d1",line="37"},{pc="0x004017e8",line="38"},{pc="0x004017ff",line="39"},{pc="0x0040181d",line="41"},{pc="0x0040182c",line="45"},{pc="0x00401842",line="46"},{pc="0x00401858",line="47"},{pc="0x0040186e",line="48"},{pc="0x00401884",line="49"},{pc="0x0040188e",line="50"},{pc="0x004018b7",line="53"},{pc="0x004018c1",line="54"},{pc="0x004018c9",line="58"},{pc="0x004018df",line="59"},{pc="0x004018ef",line="60"},{pc="0x00401918",line="63"},{pc="0x00401922",line="64"},{pc="0x00401940",line="65"},{pc="0x00401960",line="66"},{pc="0x00401980",line="67"},{pc="0x004019a0",line="68"},{pc="0x004019c0",line="69"},{pc="0x004019d0",line="71"},{pc="0x004019f9",line="72"},{pc="0x004019fe",line="75"},{pc="0x00401a08",line="76"},{pc="0x00401a26",line="77"},{pc="0x00401a46",line="78"},{pc="0x00401a66",line="79"},{pc="0x00401a76",line="81"},{pc="0x00401a9f",line="82"},{pc="0x00401aa4",line="84"},{pc="0x00401ab4",line="86"},{pc="0x00401ad0",line="87"},{pc="0x00401aee",line="88"},{pc="0x00401b0e",line="89"},{pc="0x00401b2e",line="90"},{pc="0x00401b4e",line="91"},{pc="0x00401b6e",line="92"},{pc="0x00401b7d",line="94"},{pc="0x00401b96",line="97"},{pc="0x00401bbf",line="98"},{pc="0x00401bc4",line="113"},{pc="0x00401bce",line="114"},{pc="0x00401bec",line="115"},{pc="0x00401bfc",line="116"},{pc="0x00401c2a",line="118"},{pc="0x00401c34",line="119"},{pc="0x00401c4d",line="121"}]
(gdb)
<info line "W:\md\dev\freepascal\lib\gh\examples\db\mssql\dbtest.pas":119>
&"info line \"W:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas\":119\n"
~"Line 119 of \"dbtest.pas\" starts at address 0x401c34 <main+1140>
and ends at 0x401c4d <main+1165>.\n"
^done
(gdb)
<-break-insert -f dbtest.pas:119>
^done,bkpt={number="18",type="breakpoint",disp="keep",enabled="y",addr="0x00401c34",func="main",file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="119",times="0",original-location="dbtest.pas:119"}
(gdb)
<-break-enable 18>
^done
(gdb)
<-exec-continue>
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",target-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",host-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",target-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",host-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\shell32.dll",target-name="C:\\WINDOWS\\system32\\shell32.dll",host-name="C:\\WINDOWS\\system32\\shell32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\shlwapi.dll",target-name="C:\\WINDOWS\\system32\\shlwapi.dll",host-name="C:\\WINDOWS\\system32\\shlwapi.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",target-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",host-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\ws2_32.dll",target-name="C:\\WINDOWS\\system32\\ws2_32.dll",host-name="C:\\WINDOWS\\system32\\ws2_32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\ws2help.dll",target-name="C:\\WINDOWS\\system32\\ws2help.dll",host-name="C:\\WINDOWS\\system32\\ws2help.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",target-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",host-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\comctl32.dll",target-name="C:\\WINDOWS\\system32\\comctl32.dll",host-name="C:\\WINDOWS\\system32\\comctl32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\System32\\mswsock.dll",target-name="C:\\WINDOWS\\System32\\mswsock.dll",host-name="C:\\WINDOWS\\System32\\mswsock.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\dnsapi.dll",target-name="C:\\WINDOWS\\system32\\dnsapi.dll",host-name="C:\\WINDOWS\\system32\\dnsapi.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\iphlpapi.dll",target-name="C:\\WINDOWS\\system32\\iphlpapi.dll",host-name="C:\\WINDOWS\\system32\\iphlpapi.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\mprapi.dll",target-name="C:\\WINDOWS\\system32\\mprapi.dll",host-name="C:\\WINDOWS\\system32\\mprapi.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\activeds.dll",target-name="C:\\WINDOWS\\system32\\activeds.dll",host-name="C:\\WINDOWS\\system32\\activeds.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\adsldpc.dll",target-name="C:\\WINDOWS\\system32\\adsldpc.dll",host-name="C:\\WINDOWS\\system32\\adsldpc.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\netapi32.dll",target-name="C:\\WINDOWS\\system32\\netapi32.dll",host-name="C:\\WINDOWS\\system32\\netapi32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\wldap32.dll",target-name="C:\\WINDOWS\\system32\\wldap32.dll",host-name="C:\\WINDOWS\\system32\\wldap32.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\atl.dll",target-name="C:\\WINDOWS\\system32\\atl.dll",host-name="C:\\WINDOWS\\system32\\atl.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\rtutils.dll",target-name="C:\\WINDOWS\\system32\\rtutils.dll",host-name="C:\\WINDOWS\\system32\\rtutils.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\samlib.dll",target-name="C:\\WINDOWS\\system32\\samlib.dll",host-name="C:\\WINDOWS\\system32\\samlib.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\setupapi.dll",target-name="C:\\WINDOWS\\system32\\setupapi.dll",host-name="C:\\WINDOWS\\system32\\setupapi.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\System32\\winrnr.dll",target-name="C:\\WINDOWS\\System32\\winrnr.dll",host-name="C:\\WINDOWS\\System32\\winrnr.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\msctf.dll",target-name="C:\\WINDOWS\\system32\\msctf.dll",host-name="C:\\WINDOWS\\system32\\msctf.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\rasadhlp.dll",target-name="C:\\WINDOWS\\system32\\rasadhlp.dll",host-name="C:\\WINDOWS\\system32\\rasadhlp.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\system32\\hnetcfg.dll",target-name="C:\\WINDOWS\\system32\\hnetcfg.dll",host-name="C:\\WINDOWS\\system32\\hnetcfg.dll",symbols-loaded="0",thread-group="i1"
=library-loaded,id="C:\\WINDOWS\\System32\\wshtcpip.dll",target-name="C:\\WINDOWS\\System32\\wshtcpip.dll",host-name="C:\\WINDOWS\\System32\\wshtcpip.dll",symbols-loaded="0",thread-group="i1"
=thread-created,id="2",group-id="i1"
~"[New Thread 4220.0x155c]\n"
*running,thread-id="all"
*stopped,reason="breakpoint-hit",disp="keep",bkptno="18",frame={addr="0x00401c34",func="main",args=[],file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="119"},thread-id="1",stopped-threads="all"
(gdb)
<-stack-info-depth>
^done,depth="1"
(gdb)
<-stack-list-arguments 1 0 0>
^done,stack-args=[frame={level="0",args=[]}]
(gdb)
<-stack-list-frames 0 0>
^done,stack=[frame={level="0",addr="0x00401c34",func="main",file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="119"}]
(gdb)
<-thread-info>
^done,threads=[{id="2",target-id="Thread
4220.0x155c",frame={level="0",addr="0x7c90e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="1",target-id="Thread
4220.0xe88",frame={level="0",addr="0x00401c34",func="main",args=[],file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="119"},state="stopped"}],current-thread-id="1"
(gdb)
<-stack-list-arguments 1 0 0>
^done,stack-args=[frame={level="0",args=[]}]
(gdb)
<-stack-list-locals 1>
^done,locals=[]
(gdb)
<-data-evaluate-expression $fp>
^done,value="0x16eff94"
(gdb)
<-exec-next>
^running
*running,thread-id="1"
(gdb)
*running,thread-id="all"
=library-unloaded,id="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",target-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",host-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\dblib.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",target-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",host-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca\\msvcr80.dll",thread-group="i1"
=library-unloaded,id="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",target-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",host-name="w:\\md\\dev\\freepascal\\lib\\gh\\bin\\libiconv2.dll",thread-group="i1"
~"Cannot remove breakpoints because program is no longer
writable.\nFurther execution is probably impossible.\n"
*stopped,reason="end-stepping-range",frame={addr="0x00401c4d",func="main",args=[],file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="121"},thread-id="1",stopped-threads="all"
~"warning: Error removing breakpoint -108\n"
(gdb)
<-stack-info-depth>
^done,depth="1"
(gdb)
<-stack-list-arguments 1 0 0>
^done,stack-args=[frame={level="0",args=[]}]
(gdb)
<-stack-list-frames 0 0>
^done,stack=[frame={level="0",addr="0x00401c4d",func="main",file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="121"}]
(gdb)
<-thread-info>
^done,threads=[{id="2",target-id="Thread
4220.0x155c",frame={level="0",addr="0x7c90e514",func="ntdll!LdrAccessResource",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"},state="stopped"},{id="1",target-id="Thread
4220.0xe88",frame={level="0",addr="0x00401c4d",func="main",args=[],file="dbtest.pas",fullname="w:\\md\\dev\\freepascal\\lib\\gh\\examples\\db\\mssql\\dbtest.pas",line="121"},state="stopped"}],current-thread-id="1"
(gdb)
<-stack-list-arguments 1 0 0>
^done,stack-args=[frame={level="0",args=[]}]
(gdb)
<-stack-list-locals 1>
^done,locals=[]
(gdb)
<-data-evaluate-expression $fp>
^done,value="0x16eff94"
(gdb)
<-exec-next>
^error,msg="Warning:\nCannot insert breakpoint -110.\nError accessing
memory address 0x7816cd30: Input/output error.\n"
(gdb)
<-break-delete 18>
^done
(gdb)
<kill>
&"kill\n"
=thread-exited,id="2",group-id="i1"
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1"
^done
(gdb)
<info program>
&"info program\n"
~"The program being debugged is not being run.\n"
^done
(gdb)
<-break-delete 15>
^done
(gdb)
<-break-delete 16>
^done
(gdb)
<-break-delete 17>
^done
(gdb)
<-file-exec-and-symbols >
=library-unloaded,id="C:\\WINDOWS\\system32\\ntdll.dll",target-name="C:\\WINDOWS\\system32\\ntdll.dll",host-name="C:\\WINDOWS\\system32\\ntdll.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\kernel32.dll",target-name="C:\\WINDOWS\\system32\\kernel32.dll",host-name="C:\\WINDOWS\\system32\\kernel32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\oleaut32.dll",target-name="C:\\WINDOWS\\system32\\oleaut32.dll",host-name="C:\\WINDOWS\\system32\\oleaut32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\advapi32.dll",target-name="C:\\WINDOWS\\system32\\advapi32.dll",host-name="C:\\WINDOWS\\system32\\advapi32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\rpcrt4.dll",target-name="C:\\WINDOWS\\system32\\rpcrt4.dll",host-name="C:\\WINDOWS\\system32\\rpcrt4.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\secur32.dll",target-name="C:\\WINDOWS\\system32\\secur32.dll",host-name="C:\\WINDOWS\\system32\\secur32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\gdi32.dll",target-name="C:\\WINDOWS\\system32\\gdi32.dll",host-name="C:\\WINDOWS\\system32\\gdi32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\user32.dll",target-name="C:\\WINDOWS\\system32\\user32.dll",host-name="C:\\WINDOWS\\system32\\user32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\msvcrt.dll",target-name="C:\\WINDOWS\\system32\\msvcrt.dll",host-name="C:\\WINDOWS\\system32\\msvcrt.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\ole32.dll",target-name="C:\\WINDOWS\\system32\\ole32.dll",host-name="C:\\WINDOWS\\system32\\ole32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\imm32.dll",target-name="C:\\WINDOWS\\system32\\imm32.dll",host-name="C:\\WINDOWS\\system32\\imm32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\lpk.dll",target-name="C:\\WINDOWS\\system32\\lpk.dll",host-name="C:\\WINDOWS\\system32\\lpk.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\usp10.dll",target-name="C:\\WINDOWS\\system32\\usp10.dll",host-name="C:\\WINDOWS\\system32\\usp10.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\shell32.dll",target-name="C:\\WINDOWS\\system32\\shell32.dll",host-name="C:\\WINDOWS\\system32\\shell32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\shlwapi.dll",target-name="C:\\WINDOWS\\system32\\shlwapi.dll",host-name="C:\\WINDOWS\\system32\\shlwapi.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\ws2_32.dll",target-name="C:\\WINDOWS\\system32\\ws2_32.dll",host-name="C:\\WINDOWS\\system32\\ws2_32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\ws2help.dll",target-name="C:\\WINDOWS\\system32\\ws2help.dll",host-name="C:\\WINDOWS\\system32\\ws2help.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",target-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",host-name="C:\\WINDOWS\\WinSxS\\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\\comctl32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\comctl32.dll",target-name="C:\\WINDOWS\\system32\\comctl32.dll",host-name="C:\\WINDOWS\\system32\\comctl32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\System32\\mswsock.dll",target-name="C:\\WINDOWS\\System32\\mswsock.dll",host-name="C:\\WINDOWS\\System32\\mswsock.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\dnsapi.dll",target-name="C:\\WINDOWS\\system32\\dnsapi.dll",host-name="C:\\WINDOWS\\system32\\dnsapi.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\iphlpapi.dll",target-name="C:\\WINDOWS\\system32\\iphlpapi.dll",host-name="C:\\WINDOWS\\system32\\iphlpapi.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\mprapi.dll",target-name="C:\\WINDOWS\\system32\\mprapi.dll",host-name="C:\\WINDOWS\\system32\\mprapi.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\activeds.dll",target-name="C:\\WINDOWS\\system32\\activeds.dll",host-name="C:\\WINDOWS\\system32\\activeds.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\adsldpc.dll",target-name="C:\\WINDOWS\\system32\\adsldpc.dll",host-name="C:\\WINDOWS\\system32\\adsldpc.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\netapi32.dll",target-name="C:\\WINDOWS\\system32\\netapi32.dll",host-name="C:\\WINDOWS\\system32\\netapi32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\wldap32.dll",target-name="C:\\WINDOWS\\system32\\wldap32.dll",host-name="C:\\WINDOWS\\system32\\wldap32.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\atl.dll",target-name="C:\\WINDOWS\\system32\\atl.dll",host-name="C:\\WINDOWS\\system32\\atl.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\rtutils.dll",target-name="C:\\WINDOWS\\system32\\rtutils.dll",host-name="C:\\WINDOWS\\system32\\rtutils.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\samlib.dll",target-name="C:\\WINDOWS\\system32\\samlib.dll",host-name="C:\\WINDOWS\\system32\\samlib.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\setupapi.dll",target-name="C:\\WINDOWS\\system32\\setupapi.dll",host-name="C:\\WINDOWS\\system32\\setupapi.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\System32\\winrnr.dll",target-name="C:\\WINDOWS\\System32\\winrnr.dll",host-name="C:\\WINDOWS\\System32\\winrnr.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\msctf.dll",target-name="C:\\WINDOWS\\system32\\msctf.dll",host-name="C:\\WINDOWS\\system32\\msctf.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\rasadhlp.dll",target-name="C:\\WINDOWS\\system32\\rasadhlp.dll",host-name="C:\\WINDOWS\\system32\\rasadhlp.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\system32\\hnetcfg.dll",target-name="C:\\WINDOWS\\system32\\hnetcfg.dll",host-name="C:\\WINDOWS\\system32\\hnetcfg.dll",thread-group="i1"
=library-unloaded,id="C:\\WINDOWS\\System32\\wshtcpip.dll",target-name="C:\\WINDOWS\\System32\\wshtcpip.dll",host-name="C:\\WINDOWS\\System32\\wshtcpip.dll",thread-group="i1"
^done
(gdb)
====================================================

Marcos Douglas



More information about the fpc-pascal mailing list