Re: [Lazarus] Invisible Breakpoint

2015-06-25 Thread aradeonas
 Btw. The above case likely has a different cause than the
 breakpoint at
line 0. So there may be 2 issues.

Yes probably.

I checked and and seems nothing.

 C:\lazarus\mingw\i386-win32\bingdb -i mi E:\TestPrj\TestPrj.exe 
 =thread-group-
   added,id=i1 ~GNU gdb (GDB) 7.2\n ~Copyright (C) 2010 Free
   Software Foundation, Inc.\n ~License GPLv3+: GNU GPL version 3 or
   later http://gnu.org/licenses/gpl.html\ nThis is free software:
   you are free to change and redistribute it.\nThere is NO WARRANTY,
   to the extent permitted by law.  Type \show copying\\nand \show
   wa rranty\ for details.\n ~This GDB was configured as
   \mingw32\.\nFor bug reporting instructions, pleas e see:\n ~
   http://www.gnu.org/software/gdb/bugs/...\n ~Reading symbols from
   E:\\TestPrj\\TestPrj.exe... ~done.\n (gdb)

Ara


-- 
http://www.fastmail.com - Or how I learned to stop worrying and
  love email again

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 19:28, aradeonas wrote:

But code is in exe and line works,I put a log in that line and it works.
No I havent and options are as wiki : Link smart= False;
(wiki screenshot seems outdated)



Can it be that the lines are inlined?

Please check, if those dots are missing right away, when you start 
debugging and have not (since compiling) edited the file.


or open the exe in gdb, and check if there is debug info for this line
gdb -mi yourexe.exe

info line yourunit.pas:291

Should return something like:
Line 291 of \include/control.inc\ starts at address 0x543105 
SETTEXT+325 and ends at 0x5433d1 SETTEXT+1041


info line yourunit.pas:292

If both line have code then the address should go up, if it does not, 
the fpc did not put debug info for that line, and the debugger can not 
find it.



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
 Please check, if those dots are missing right away, when you start
debugging and have not (since compiling) edited the file.

Yes they missed when I start right away after opening Lazarus.

 or open the exe in gdb, and check if there is debug info for this line
gdb -mi yourexe.exe How? If you mean in command line it says there
isnt any -mi.

Also I changed the lines but still if I set breakpoint in that line (now
its 280) it still wait at the next procedure's begin.

Regards, Ara


-- 
http://www.fastmail.com - Choose from over 50 domains or use your own

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 23/06/2015 19:07, aradeonas wrote:

Its almost first condition but I removed breakpoint but it debugger
think it still there.
I will try to to reproduce it,its hard becuse it finds out suddenly but
as I understand it mostly happen in other packages not the project.


1)
Most Important:
- OS? (Version?)
- CPU?
- Lazarus 1.4 ?
- fpc 2.6.4?
- gdb version (on windows 32 bit, it is 7.2 if you use the normal installer)

2)
So it is also gone from the list in the breakpoint window? (Menu View 
  Debug Windows)


3)
Do you remove the breakpoint, while the program is
- running
- paused
- debugger stopped
- dgb starting up / pressed F9, but not yet seeing your app on screen
- dbg stopping

4)
This is all in a single debug run? Or do you debug, end debug, start a 
new debug, and in the new debug a breakpoint still exists, that you removed?


5)
Does the code contains any threads?
On Windows: Does it happen shortly after (up to a minute) after using a 
file open/save (or other file/print/system) dialog? Many of them create 
threads.


If you can keep the thread window open, so you see if there are any 
threads. (On Windows, hitting pause, creates ONE extra thread)


6)
Try running Lazarus creating a logfile:
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Log_info_for_debug_session
When you exit/ restart the IDE, delete the log, or it keeps growing.
When the issue happens again, send the log (if to big for the mail list, 
you can sent directly to me, or attach to a bug created)


When it happens, notice filename and line where the debugger stopped., 
then stop the debugger, without doing any further debugging, and exit 
the ide, so the log will be correctly finished.


-
Alternatively, if the above is too much / taking to long, then you can 
try to:

- in tools option reset debugger after each run£
- on Windows 32: use the gdb 7.7.1 (alternative gdb) from the Lazarus 
SourceForge site


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 23:30, aradeonas wrote:

How? If you mean in command line it says there isnt any -mi.

sorry it is
gdb -i mi project.exe

probably a simple
gdb project.exe
will also do

Also I changed the lines but still if I set breakpoint in that line 
(now its 280) it still wait at the next procedure's begin.


Breakpoint normally only work on lines with blue dots. So if there is no 
blue dot then that means there is no line of code there.


Well of course in your case there is. But it is unknown to the debugger.
- Either FPC did not generate the info when compiling
- gdb has a bug reading the issue
- the IDE does display incorrect

In the last case the breakpoint would actually work. For the IDE does 
not check for the blue dot. IT just displays it, but does not use it for 
any check when setting the breakpoint.


You can try explicitly setting debug info to  dwarf2 (with sets) or stabs.


Btw. The above case likely has a different cause than the breakpoint at 
line 0. So there may be 2 issues.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
1) Windows 8.1 64 bit but it also happened in 7 64bit. CPU's are Intel
core 2 (recent) and A new AMD model that I couldnt remember.
fpc yes 2.6.4 and Lazarus 1.4 32bit and gdb is default.all are default
and was default.this problem is here for last 3 released version.

2) No they are in the breakpoints list but when you dbl click or want to
go to the line,Lazarus cant find the line.

3) I have doubt about it but as I remember yes I changed code and
breakpoint in the middle of debugging but not always I think.

4) Single debug ,also many times it will be there after closing and
opening the project again and again until suddenly it be removed or
sometimes I made breakpoint in the line and propitious and next lines
and remove them.

5) No.

6) OK I will.

Is gdb 7.2 used for last 3 Lazarus release?because I have this problem
from the first time I met Lazarus and I think it 3 or 4 version ago.

Regards,
Ara

-- 
http://www.fastmail.com - Faster than the air-speed velocity of an
  unladen european swallow


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 16:12, aradeonas wrote:

2) No they are in the breakpoints list but when you dbl click or want to
go to the line,Lazarus cant find the line.
Have you compared the Path in the filename? (You can see the path, by 
opening the properties of a breakpoint)


The line does exist in the file, I assume?

Have you edited the file after F9 (Answer 3 suggests you may have?)? If 
so are the blue dots correctly aligned with the code?


Is there any error, when the IDE does not jump to the line for a 
hidden breakpoint. (messages window)
If there is not, then use the log (below) and see, if any error is in 
the log (or mail it)



6) OK I will.

Is gdb 7.2 used for last 3 Lazarus release?because I have this problem
from the first time I met Lazarus and I think it 3 or 4 version ago.

After your answer above (2), the gdb version is very unlikely to affect 
this. This was in case the IDE tried to delete it, but gdb refused. But 
the IDE still has it, so gdb is not at fault.

But yes 7.2 has been used a long time.

As for the log. Reduce it to:

 --debug-log=LOG_FILE  --debug-enable=DBG_STATE,DBGMI_QUEUE_DEBUG



--
unrelated. There is a common win7/8 issue (but absolutely not related):
http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#On_Windows_Open.2FSave.2FFile_or_System_Dialog_cause_gdb_to_crash



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
Yes,File is correct,I removed a breakpoint and change code but debugger
think its still there. Yes line exists but Line/Length column in
BreakPoint viewer is 0 most of the times. Yes I edit file.But I dont
know what you mean from blue dots. No there isnt any error.
 his was in case the IDE tried to delete it, but gdb refused. But
the IDE still has it, so gdb is not at fault.

Intersting is BreakPoint viewer show there should be a breakpoint but
code editor doesnt and debugger think there is so BreakPoint viewer and
debugger think same.

Regards, Ara


-- 
http://www.fastmail.com - mmm... Fastmail...

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 18:45, aradeonas wrote:

Martin just now I have this problem :
BreakPoint viewer shows one breakpoint at line 291 but debugger wait 
on line 303 on begin of next procedure.when I remove procedure 
debugger wont wait but if I put it back on 291 it will wait on 303.
I restarted IDE but problem still there and log only shows breakpoint 
on line 291.




Ok, so the internal bap of the debugger is somehow incorrect. I assume 
all the above actions were within one debug session?


The IDE seems to assume that you deleted lines.

Now if you delete lines while debugging, the exe is not recompiled.
Delete 12 lines before 290, and the code that was at line 303 will be at 
line 291. (That is in the editor)


But in the exe in the debugger it would still be at line 303. SO if 
indeed those lines where deleted, then setting a breakpoint at 291, 
needs to set a breakpoint at what was 303 at compile time.


BEst to open an issue on the bugtracker.
I'll need to see how best to find additional info what causes this (that 
is why the IDE thinks you deleted lines, when you did not)



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
Take a look at attachment,as you see blue dots are at all lines except
the procedure that breakpoint is in it.Also as you can see debugger
wait on 303.
 BEst to open an issue on the bugtracker
Yes but I have problem to reproduce it.

Regards, Ara


-- 
http://www.fastmail.com - Access all of your messages and folders
  wherever you are

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 19:05, aradeonas wrote:
Take a look at attachment,as you see blue dots are at all lines except 
the procedure that breakpoint is in it.Also as you can see debugger 
wait on 303.


BEst to open an issue on the bugtracker

Yes but I have problem to reproduce it.



Ah, that looks like a different issue. There are no blue dots for that 
procedure at all. That usually means this procedure was not compiled 
into the exe at all.


If the procedure is not in the exe, then gdb thinks there is no 
executable code on that line 291, and it sets the breakpoint on the 
first line with code that it can find after that. (Yep in that case it 
be better to not set a breakpoint at all, and mark the breakpoint as 
invalid, but that is not (yet) implemented).



By any chance, do you have smart linking enabled?
http://wiki.lazarus.freepascal.org/Debugger_Setup#Project_Options
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
But code is in exe and line works,I put a log in that line and it works.
No I havent and options are as wiki : Link smart= False; (wiki
screenshot seems outdated) Ara


-- 
http://www.fastmail.com - Send your email first class

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 18:20, Martin Frb wrote:


line is 0... Interesting.


you said

Its almost first condition but I removed breakpoint but it debugger
think it still there.

Does that mean:

- The breakpoint is there (red mark in the gutter)
- You click it, and it disappears from the editor
- Now you discover it is still there?


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 18:35, aradeonas wrote:
I forgot to mention I use JCF formatter much,maybe it is the reason,I 
will focus on it and when I found a way to reproduce it tell you.



JCF may indeed not preserve breakpoints.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb
Do you at any time replace (e.g. copy and paste -- undo/redo -- 
delete-all/undo ) the content of the entire file? Or at least from line 
1 to the line with the breakpoint?


undo only undoes the text, but the breakpoint pos might in some cases be 
off, after the undo.


replacing lines, moves breakpoints in the replaced range, to (iirc) the 
top of that range.


On 24/06/2015 16:55, aradeonas wrote:
Yes,File is correct,I removed a breakpoint and change code but 
debugger think its still there.
Yes line exists but Line/Length column in BreakPoint viewer is 0 most 
of the times.
Ok it all sounds as if some part of the IDE thinks there is a different 
file.
Is it a file in your project (main folder or via some path), or is it in 
some package?


Do the logfile anyway, it should tell what filename and path the IDE 
sends to GDB. And also the line number. (see below)


line is 0... Interesting.


Yes I edit file.But I dont know what you mean from blue dots.
When you run your app, there should be blue dots in the gutter for any 
executable line.



Intersting is BreakPoint viewer show there should be a breakpoint but 
code editor doesnt and debugger think there is so BreakPoint viewer 
and debugger think same.


Where exactly does the debugger stop in that unit?

First line of first procedure? Or the actual line in which the 
breakpoint used to be, before it became corrupted?


--
Some background.

A breakpoint at line 0 can not be shown in the editor. (since first line 
is 1). However if setting a breakpoint in gdb to a line with no code 
(line 0 has no code) gdb searches the next line with code, and sets it 
there. (set a breakpoint on an empty line, will stop on next line)
This can be useful (if its just 1 or 2 lines off), and harmful if its 
100 or more lines away (e.g. in the interface section)


So if you stop at the first line of code in the unit, then you got a 
breakpoint at line 0, and that can not be displayed in the editor. The 
question is, how it moved to line 0.


Something else:
1) when you edit a file while NOT debugging, breakpoints move as you 
insert/delete lines (obviously)
2) edit a file while debugging, they still move, but only in the IDE. 
Because the exe in the debugger still needs the old positions.
So if procedure Foo is at line 500 to 550, with a breakpoint (in foo) at 
510; and you delete 5 lines somewhere before 500, then in the 
SourceEditor Foo is from 495 to 545 (but the loaded exe still is from 
500 to 550) The IDE then maps the breakpoint (that is now displayed at 
505) to still stop at 510 (in loaded exe). This map is reset when the 
debugger stops.


Maybe there is an issue with that map...


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
I forgot to mention I use JCF formatter much,maybe it is the reason,I
will focus on it and when I found a way to reproduce it tell you.

Ara


-- 
http://www.fastmail.com - IMAP accessible web-mail

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread Martin Frb

On 24/06/2015 18:31, aradeonas wrote:


Do you at any time replace (e.g. copy and paste -- undo/redo --
delete-all/undo ) the content of the entire file? Or at least from line
1 to the line with the breakpoint?

Yes but not all time this problem happen.
Try to keep watching those actions. In case any of them sets the line no 
to 0



Mostly package but it without any duplicate so make IDE wrong.
Right lets ignore filename and path. It seems the issue i on the line 
number.



Excuse me but still I can understand what you mean.


As in the image. Blue dots in the gutter. (they are red on lines with 
breakpoint)



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-24 Thread aradeonas
 Do you at any time replace (e.g. copy and paste -- undo/redo --
delete-all/undo ) the content of the entire file? Or at least from line
1 to the line with the breakpoint?

Yes but not all time this problem happen.
 Is it a file in your project (main folder or via some path), or
 is it in
some package? Mostly package but it without any duplicate so make
IDE wrong.
 When you run your app, there should be blue dots in the gutter for any
executable line. Excuse me but still I can understand what you mean.
 Where exactly does the debugger stop in that unit?

First line of first procedure? Or the actual line in which the
breakpoint used to be, before it became corrupted? Mostly on the end of
procedure.
 A breakpoint at line 0 can not be shown in the editor. (since
 first line
is 1). However if setting a breakpoint in gdb to a line with no code
(line 0 has no code) gdb searches the next line with code, and sets it
there. (set a breakpoint on an empty line, will stop on next line) This
can be useful (if its just 1 or 2 lines off), and harmful if its 100 or
more lines away (e.g. in the interface section) BreakPoint viewer shows
line 0 but its not about first line,it just cant find the line,for
correct breakpoints when you dbl click editor go to it but for these one
nothing happen.

 2) edit a file while debugging, they still move, but only in the IDE.
Because the exe in the debugger still needs the old positions. So if
procedure Foo is at line 500 to 550, with a breakpoint (in foo) at 510;
and you delete 5 lines somewhere before 500, then in the SourceEditor
Foo is from 495 to 545 (but the loaded exe still is from 500 to 550) The
IDE then maps the breakpoint (that is now displayed at
505) to still stop at 510 (in loaded exe). This map is reset when the
 debugger stops.

Yes it just happens for me and  I saw it for example all of breakpoints
in a procedure go 2 line down.

Regards, Ara


-- 
http://www.fastmail.com - IMAP accessible web-mail

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-23 Thread Martin Frb

On 23/06/2015 16:58, aradeonas wrote:

Hi,
As old users know there was a problem about breakpoints that after 
removing or changing code still debugger will stop at an imaginary line.
Years ago it seems solved as I read mail list but I have this problem 
from day one of using Lazarus and my only solution is removing them 
from breakpoint list.

I want to ask is the problem want to go away or Im doing something wrong?



There are at least 2 different known causes. (both have been addressed 
in the past, but there still can be conditions under which they exist)


1) Breakpoint is in correct file (including full directory), but 
different line
2) Breakpoint is in a file of equal name, but different directory. 
(usually symlink to file/folder)


1) As long as the blue dots (during debugging) are showing for a file 
the line should be traced.  However replacing multiple lines (via 
paste/override selection) will move it to either start or end of the 
newly pasted lines.


2) Do not open files with symlinks. if you did, search through your xml 
files (lpi, lps, and primary-config-path) and clean them.


If it is symlinks, I do not know how much can be done. Otherwise exact 
steps to reproduce are needed




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Invisible Breakpoint

2015-06-23 Thread aradeonas
Its almost first condition but I removed breakpoint but it debugger
think it still there.
I will try to to reproduce it,its hard becuse it finds out suddenly but
as I understand it mostly happen in other packages not the project.

Regards,
Ara


-- 
http://www.fastmail.com - Does exactly what it says on the tin


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus