Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 07:33 PM, Martin Frb wrote: Look at the log, if you see the -exec-... & and the work then all is ok. I have the ARM machine in question (a "topless" QNAP NAS) at home and will try to make sense of this during the weekend. BTW.: In fact the helpful person from Austria did start to write a documentation on how to install and use cross compiling and remote debugging towards an embedded ARM target. I promised to translate this to English. when one and verified. But he was only able to create the "cross" gdb / gdbserver pair after installing the complete multi Gigabyte partly propriety "CodeSourcery" cross environment (including Eclipse) and so we decided that documenting _this_ does not make sense. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GLUT vs windows 64 bits
my program worked with freeglut ... I just noted some differences on windows 7 64 bits ... may be because it is on notebook thanks a lot for your help! Philippe Em 10.04.2014 16:01, Sven Barth escreveu: > On 10.04.2014 18:43, Philippe wrote: > >> I made an application with GLUT. I did not have any problem to run under windows 32. Under windows 64 bits, the program does not recognize the glut32.dll properly and returns a message. > > Note: I would suggest you to use FreeGLUT if you want to keep the API. > It's a drop in replacement for the original GLUT, but also provides > 64-Bit libraries. See here: http://freeglut.sourceforge.net/ [1] (at > Prepackaged Releases you can find a link for Windows binaries) > > Regards, > Sven > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus [2] Links: -- [1] http://freeglut.sourceforge.net/ [2] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GLUT vs windows 64 bits
I read some confuse documentation ... and get in trouble!!! thanks. I´ll try first with freeglut ... seems to be the laziest way! may be latter with openGl Control ... I´ll read http://wiki.freepascal.org/OpenGL_Tutorial next ... thanks again Philippe Em 10.04.2014 16:01, Sven Barth escreveu: > On 10.04.2014 18:43, Philippe wrote: > >> I made an application with GLUT. I did not have any problem to run under windows 32. Under windows 64 bits, the program does not recognize the glut32.dll properly and returns a message. > > Note: I would suggest you to use FreeGLUT if you want to keep the API. > It's a drop in replacement for the original GLUT, but also provides > 64-Bit libraries. See here: http://freeglut.sourceforge.net/ [1] (at > Prepackaged Releases you can find a link for Windows binaries) > > Regards, > Sven > > -- > ___ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus [2] Links: -- [1] http://freeglut.sourceforge.net/ [2] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GLUT vs windows 64 bits
On 10.04.2014 18:43, Philippe wrote: I made an application with GLUT. I did not have any problem to run under windows 32. Under windows 64 bits, the program does not recognize the glut32.dll properly and returns a message. Note: I would suggest you to use FreeGLUT if you want to keep the API. It's a drop in replacement for the original GLUT, but also provides 64-Bit libraries. See here: http://freeglut.sourceforge.net/ (at Prepackaged Releases you can find a link for Windows binaries) Regards, Sven -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GLUT vs windows 64 bits
On 10.04.2014 18:43, Philippe wrote: I made an application with GLUT. I did not have any problem to run under windows 32. Under windows 64 bits, the program does not recognize the glut32.dll properly and returns a message. Are you using a 64-Bit compiler to compiler your application that uses Glut? If so then this explains why you can't use Glut... It's a 32-Bit library. You'll need a 64-Bit version of it. Regards, Sven -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 16:41, Michael Schnell wrote: On 04/10/2014 05:33 PM, Martin Frb wrote: That would work. (and I would accept a patch (adding an option / not making it mandatory) Sounds nice to me, especially regarding that gdbserver is not that "common" and hence not easily to come by in some cases. But at this stage, I prefer the async solution. I see. Did you test, if the gdb (without gdbserver) you intend to use supports async? In fact we have not been able to find/create a remote-gdb gdbserver pair with an effort low enough to recommend to anybody. async may in some cases work with just gdb, no gdbserver needed. But I do not know, if it will on the arm target you look at. I just checked. I added IDE support. So using gdb over SSH with Laz 1.2 it will try async. Look at the log, if you see the -exec-... & and the work then all is ok. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Ann: TButtonEdit as replacement for TEditButton
On 4/10/14, Bart wrote: > I can confirm this. It does not store in LFM. That's a wrong conclusion it seems. It does store in LFM, see snippet: object EditButton1: TEditButton Left = 8 Height = 23 Top = 46 Width = 160 ButtonWidth = 23 Color = clYellow <<<== MaxLength = 0 NumGlyphs = 1 OnButtonClick = EditButton1ButtonClick But upon loading it the color of FEdit gets reset to it's parent color. Fixed in r44669. Please test. Bart -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] GLUT vs windows 64 bits
On Thu, 10 Apr 2014 13:43:56 -0300 Philippe wrote: > > > I made an application with GLUT. Don't. Just do not use GLUT in any way or shape. It is very, very old. AFAIR the latest pre-compiled binary distributions were for Windows 95 and NT. Of course there is no official Windows 64 support as GLUT is dead and rotten. Use OpenGLControl for context managment in Lazarus and get rid of GLUT. If you absolutely must use GLUT (although I cannot think of any viable reason) use freeglut as it is at least maintained. hih R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 18:04, Bernd Mueller wrote: If I use the standalone gdb on the Win7 Host instead of Lazarus, debugging on the remote target works correct. I had a look into the network traffic between target and host while debugging with Lazarus. If the stepping fails, one can see that the target is sending its breakpoint replay packet "+$T" which seems to be ignored completely by the host. If the stepping does not fail, the host acknowledges this packet with "+" and starts to read memory from the target via the "$m" Packet. I am trying to go more into detail... There are several possibilities, that I can think off: 1) some setting the IDE uses. - Gather all the "set foo=" commands that the IDE sends, and see if applying them to your manual driven gdb session makes a different. - Run your manual gdb with "gdb.exe -i mi " to enable mi mode (I do not think that is it, but ) 2) Timing (again, and not unlikely) If you open gdb in a terminal, it prints to that terminal. In the IDE it prints to a pipe. That may take different amount off time. Also, does your sniffer give the time, between the "step over" sent to the target, and the packet that comes pack, and is ignored? compared to when it works? -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Ann: TButtonEdit as replacement for TEditButton
On 4/10/14, FreeMan wrote: > I was used TCustomEditButton class. Color property need variable so can > write it in lfm. "FEdit: TBeEdit;" has no color property, its come > always clBtnFace on my system. Kubuntu 13.10 x64. last trunc. In design > time change to any color, look at lfm file, no color property value there. > Regards I can confirm this. It does not store in LFM. Not sure why given the definition: property Color: TColor read GetColor write SetColor stored True default {$ifdef UseCLDefault}clDefault{$else}clWindow{$endif}; Please open a ticket in bugtracker. Bart -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
Martin Frb wrote: On 10/04/2014 15:06, Bernd Mueller wrote: Martin Frb wrote: gdbserver seems to have some options to track problems, maybe try them? Options: --debug Enable general debugging output. This is very strange. If I activate --debug, then everything seems to work. As if slowing down the target (by printing all the debug messages in its console) is helping somehow with the communication. Odd, that makes it even more look like a gdb bug. Though, I am not sure it is communication, it might be timing on the local interaction between gdb and the debuggee. If I use the standalone gdb on the Win7 Host instead of Lazarus, debugging on the remote target works correct. I had a look into the network traffic between target and host while debugging with Lazarus. If the stepping fails, one can see that the target is sending its breakpoint replay packet "+$T" which seems to be ignored completely by the host. If the stepping does not fail, the host acknowledges this packet with "+" and starts to read memory from the target via the "$m" Packet. I am trying to go more into detail... Regards, Bernd. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] GLUT vs windows 64 bits
I made an application with GLUT. I did not have any problem to run under windows 32. Under windows 64 bits, the program does not recognize the glut32.dll properly and returns a message. I made a test with example program openglcontrol_demo. Just added GLU, GLUT in a unit, no other change to the project. I got: Object openglcontrol_demo raised exception class `Exception` with message: Could not load Glut from glut32.dll I tried with GLUT32.DLL in windows32, in syswow64 and in both. When I try to registrer the dll in either directory I got a message which tells me that the DLL was found but dllRegisterServer not found And this is the very same file GLUT32.DLL I am using with XP e Windows 8 32 bits ... Well ... may be there is better mail list for this kind of problem!!! I appreciate any help. Even suggestion of other "compatible" package (I have visited lists ... but some packages are quite as old as GLUT himself, or example does not work, or very different and I may not be able to move to ...) Philippe -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 05:33 PM, Martin Frb wrote: That would work. (and I would accept a patch (adding an option / not making it mandatory) Sounds nice to me, especially regarding that gdbserver is not that "common" and hence not easily to come by in some cases. But at this stage, I prefer the async solution. I see. Did you test, if the gdb (without gdbserver) you intend to use supports async? In fact we have not been able to find/create a remote-gdb gdbserver pair with an effort low enough to recommend to anybody. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 16:28, Michael Schnell wrote: On 04/10/2014 05:14 PM, Martin Frb wrote: Or do you have another way? A wild Idea might be to open two SSH sessions: one for gdb (maybe in sync mode of this makes sense), and another that just accesses a little SIGINTServer application that is used to send the signal when appropriate.. That would work. (and I would accept a patch (adding an option / not making it mandatory) But at this stage, I prefer the async solution. Did you test, if the gdb (without gdbserver) you intend to use supports async? If it does, then that should do the trick (or can be fixed to do it). It may need the "n" instead of -exec-next, change. I may commit that, when I have the time, to make a clean implementation. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 16:20, Michael Schnell wrote: On 04/10/2014 03:30 PM, Martin Frb wrote: On 10/04/2014 14:14, Michael Schnell wrote: Moreover I found that, with an embedded target, finding or creating a normal gdb might be a lot easier that finding or creating the "cross gdb" (running on PC but understanding the Target's files) plus the gdbserver for the target. Any comment on this ? IMHO the by for most needed application for remote debugging is PC (Linux or Windows) ---> ARM (Linux). Will there once be some "out of thge box" support for this (providing gdbm gdbserver and documentation) ? (In fact - as you might remember - a pal from Austria and myself did not get this running about y year ago.) I will work on improving the IDE gdb/gdbserver support, where I can (and dependent on feedback). I do not plan, to try and build, or searh for gdb/gdbservers. Nor do I have (or plan on having) any arm (real or simulated) environment. So I will not add those gdb/gdbserver myself. I do not know, if anyone else wants to work on that. Also which installer should they be added to? The only installer which does arm, is the wince. (and that may also need some maintenance, not sure, if it comes with gdb out of the box) -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 05:14 PM, Martin Frb wrote: Or do you have another way? A wild Idea might be to open two SSH sessions: one for gdb (maybe in sync mode of this makes sense), and another that just accesses a little SIGINTServer application that is used to send the signal when appropriate.. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 16:16, Michael Schnell wrote: On 04/10/2014 05:06 PM, Michael Schnell wrote: Manually using gdb via ssh (to bash) can do it, So why should the IDE not be able to ? (Or does - when in non-remote mode - the IDE really send a SigInt *directly* to the application and not via the debugger ) Yes the IDE, does send a SigInh directly to the target. Not via the debugger. The debugger does (except for async mode) not accept any commands. Using gdb on a terminal, ctrl-c generates the Signal (and afaik it goes through to the debuggee). But in the IDE, the gdb is run without terminal. and that does not work. If you find a way, well patches welcome. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 03:30 PM, Martin Frb wrote: On 10/04/2014 14:14, Michael Schnell wrote: Moreover I found that, with an embedded target, finding or creating a normal gdb might be a lot easier that finding or creating the "cross gdb" (running on PC but understanding the Target's files) plus the gdbserver for the target. Any comment on this ? IMHO the by for most needed application for remote debugging is PC (Linux or Windows) ---> ARM (Linux). Will there once be some "out of thge box" support for this (providing gdbm gdbserver and documentation) ? (In fact - as you might remember - a pal from Austria and myself did not get this running about y year ago.) Thanks, -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 05:06 PM, Michael Schnell wrote: Manually using gdb via ssh (to bash) can do it, So why should the IDE not be able to ? (Or does - when in non-remote mode - the IDE really send a SigInt *directly* to the application and not via the debugger ) Hum. Re-Thinking: When manually using gdb (directly on the target) can't you Pause the application under debug ? If yes, the IDE should be able to do this via SSH, as well. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 16:06, Michael Schnell wrote: On 04/10/2014 03:30 PM, Martin Frb wrote: The IDE ssh debugger, can not pause the app either. I don't understand why this should be the case. Manually using gdb via ssh (to bash) can do it, So why should the IDE not be able to ? (Or does - when in non-remote mode - the IDE really send a SigInt *directly* to the application and not via the debugger ) Well how do you do it, if you do it manually? Ctrl-C ? I have not spent to much time on it, but if you can make the IDE send this to the remote then cool. Btw, IIRC I did try, and sending #$03 does not do it. It is not the ctrl-c character that needs to be sent, but the break that a terminal emulation generate upon receiving the key combo. Or do you have another way? - Oh btw: IIRC gdb over ssh can do it in the IDE, if and only if gdb supports async (need to double check). gdbserver supports that for almost all targets. gdb only for a selected few. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/10/2014 03:30 PM, Martin Frb wrote: The IDE ssh debugger, can not pause the app either. I don't understand why this should be the case. Manually using gdb via ssh (to bash) can do it, So why should the IDE not be able to ? (Or does - when in non-remote mode - the IDE really send a SigInt *directly* to the application and not via the debugger ) -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 15:06, Bernd Mueller wrote: Martin Frb wrote: gdbserver seems to have some options to track problems, maybe try them? Options: --debug Enable general debugging output. This is very strange. If I activate --debug, then everything seems to work. As if slowing down the target (by printing all the debug messages in its console) is helping somehow with the communication. Odd, that makes it even more look like a gdb bug. Though, I am not sure it is communication, it might be timing on the local interaction between gdb and the debuggee. It is well possible that the connection with the win2000 also affects speed, and that gdbserver may hit a race condition. (gdb has one on win32 where it fails to step, because it interrupts the target, before the target fully resumed / well something roughly like that). It is possible that the arm gdbselver has is own race condition. And that the connection speed with win7 increases the likelyhood. But of course that is just a guess. You can also try the following. Rebuild the IDE. Then in the log, watch out for >> TCmdLineDebugger.SendCmdLn "n &" This is the log: >> TCmdLineDebugger.SendCmdLn "n &" << TCmdLineDebugger.ReadLn "&"n &\n"" << TCmdLineDebugger.ReadLn "^running" Yes, that means it runs async (so the gdb mi implementation is simple incomplete. Something that affects the local gdb, but not gdb server.) then wait till the error happens, and see what happens if you press pause. Then the assembler window pops up. But I have the impression, that IDE/Debugger and target are not in sync any more. But maybe, I am doing something wrong. I have to check this in detail. Check the thread window, and stack for each thread. But as I said above it is possible that gdbserver screwed up, and that your target ended up in an unusable state. I do no think (but again its all guessing), tha the communication is broken. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
Martin Frb wrote: If gdb server can detect the connection loss (at "stop"), then it was still connected. So gdb has failed on a different level. I assume that the gdbserver on the arm target is the same, when you try from win7, as it is when you try from win2000? yes, I have only one target. So I am working always with the same gdbserver. Maybe something with the AV or firewall on win7? Not impossible. But I doubt it. Maybe trying a different version of gdb on win7? I have done this already. gdbserver seems to have some options to track problems, maybe try them? Options: --debug Enable general debugging output. This is very strange. If I activate --debug, then everything seems to work. As if slowing down the target (by printing all the debug messages in its console) is helping somehow with the communication. You can also try the following. Rebuild the IDE. Then in the log, watch out for >> TCmdLineDebugger.SendCmdLn "n &" This is the log: >> TCmdLineDebugger.SendCmdLn "n &" << TCmdLineDebugger.ReadLn "&"n &\n"" << TCmdLineDebugger.ReadLn "^running" then wait till the error happens, and see what happens if you press pause. Then the assembler window pops up. But I have the impression, that IDE/Debugger and target are not in sync any more. But maybe, I am doing something wrong. I have to check this in detail. Regards, Bernd. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Ann: TButtonEdit as replacement for TEditButton
Hello Bart, I was used TCustomEditButton class. Color property need variable so can write it in lfm. "FEdit: TBeEdit;" has no color property, its come always clBtnFace on my system. Kubuntu 13.10 x64. last trunc. In design time change to any color, look at lfm file, no color property value there. Regards 09-04-2014 19:14 tarihinde, Bart yazdı: As per r44623 (trunk) the new TButtonEdit component replaces the TEditButton component. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 14:14, Michael Schnell wrote: On 04/09/2014 06:27 PM, Bernd Mueller wrote: I stepped through the program until the problem occurred and hit then pause. As far as I could see, nothing happened. Then I hit stop. I once was told that with using gdbserver, "Pause" (while not hitting a breakpoint) is not possible. That changed. But only where gdb supports async mode. Back then the IDE did not support using gdb in async mode. Now it does. But, as the logfile showed, the gdb/gdbserver used, supported async for run(f9), but not step(F8). The latter, may be due to the use of the mi syntax. Which is why I wrote changing it to "n" instead of -exec-next That is why I found that using ssh to remote-control "normal" gdb on the target (instead of locally controlling gdb and having it connect to gdbserver on the target) would be more appropriate. That may work outside the IDE, if you can either send a "break" (ctrl-c) to gdb, or have a 2nd ssh connection, and can do "kill SIGINT pid_of_yourapp". The IDE ssh debugger, can not pause the app either. Moreover I found that, with an embedded target, finding or creating a normal gdb might be a lot easier that finding or creating the "cross gdb" (running on PC but understanding the Target's files) plus the gdbserver for the target. I found that - at that time - the code for ssh'ing gdb was present in the Lazarus source but was commented out (supposedly because it's not yet ready for use). See above. It does not pause the remote. To pause an app in the debugger, the IDE sends a SigInt. But it can only do that for local targets. The gdbserver debugger in the IDE, can tell gdb to interupt the target, (again) if gdb is in async mode. In async mode, gdb will accept commads while the target is running. So you can do r & // run async (background) interrupt // pause -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 04/09/2014 06:27 PM, Bernd Mueller wrote: I stepped through the program until the problem occurred and hit then pause. As far as I could see, nothing happened. Then I hit stop. I once was told that with using gdbserver, "Pause" (while not hitting a breakpoint) is not possible. That is why I found that using ssh to remote-control "normal" gdb on the target (instead of locally controlling gdb and having it connect to gdbserver on the target) would be more appropriate. Moreover I found that, with an embedded target, finding or creating a normal gdb might be a lot easier that finding or creating the "cross gdb" (running on PC but understanding the Target's files) plus the gdbserver for the target. I found that - at that time - the code for ssh'ing gdb was present in the Lazarus source but was commented out (supposedly because it's not yet ready for use). -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
On 10/04/2014 12:28, Bernd Mueller wrote: You could try, if you are on that line, instead of stepping (F8), set a breakpoint the next line (lines, if there is a conditional), and use F9. Then, with F9 you should be able to use the pause button And then try, what happens if you hit the pause button in the IDE? yes, pause seems to work. So the remote printed connection lost, when you pressed stop in the IDE. Then it was still connected? The exact message from the target is: "Remote side has terminated connection. GDBServer will reopen connection. Listening on port " Well from the log, there is nothing wrong in the IDE <-> gdb communication. So it is some issue in GDB itself. As for trying to find a workaround: If gdb server can detect the connection loss (at "stop"), then it was still connected. So gdb has failed on a different level. I assume that the gdbserver on the arm target is the same, when you try from win7, as it is when you try from win2000? Maybe something with the AV or firewall on win7? Maybe trying a different version of gdb on win7? gdbserver seems to have some options to track problems, maybe try them? Options: --debug Enable general debugging output. --remote-debugEnable remote protocol debugging output. You can also try the following. 1.3: components\lazdebuggergdbmi\gdbmidebugger.pp (line 877) 1.2: debugger\gdbmidebugger.pp(line ??) defines a "const" GDBMIExecCommandMap: array [TGDBMIExecCommandType] of string = containing '-exec-next', // ectStepOver, replace it by 'n', // ectStepOver, Rebuild the IDE. Then in the log, watch out for >> TCmdLineDebugger.SendCmdLn "n &" If the next line is an error (like) << TCmdLineDebugger.ReadLn "^error,msg="A syntax error in expression, near `&&'."" Then it does NOT help. If it is followed by << TCmdLineDebugger.ReadLn "^running" then wait till the error happens, and see what happens if you press pause. -- Though, yes, it will not stop the error from happening. But it may allow pause to work, if the error happens. Fixing the error, can probably only be done in gdb -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Remote debugger looses connection to target on Windows 7
Martin Frb wrote: I have the log file attached. What code is on this line? This is not always the same line when the problem appears. repeat Writeln('Test'); Sleep(500); until FALSE; It can happen, that I press F8, when the grey bar is on the line with the Writeln statement and the debugger does not come back to the next line with the Sleep statement. I made another simple test case, which fails on Windows 7 (but works on Windows 2000): program project2; begin Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); Writeln('Test'); end. On Windows 7, I am not able to step until the end of the program. At some time, when I step over with F8, the grey selection bar does not come back to the next Writeln statement. I can see, that the target has stopped, because there is no further output in the console. [valuable information snipped] You could try, if you are on that line, instead of stepping (F8), set a breakpoint the next line (lines, if there is a conditional), and use F9. Then, with F9 you should be able to use the pause button And then try, what happens if you hit the pause button in the IDE? yes, pause seems to work. So the remote printed connection lost, when you pressed stop in the IDE. Then it was still connected? The exact message from the target is: "Remote side has terminated connection. GDBServer will reopen connection. Listening on port " Regards, Bernd. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus