eranif / codelite

A multi purpose IDE specialized in C/C++/Rust/Python/PHP and Node.js. Written in C++
https://codelite.org
GNU General Public License v2.0
2.12k stars 456 forks source link

GDB Deleting BreakPoints. #3019

Open shadoww1028 opened 2 years ago

shadoww1028 commented 2 years ago

If there is a common project that is being linked in with another project that is the project that actually runs and the break point is in that linked in Project when hit that break point disappears and is deleted. The Break point is not a tmp breakpoint. Linux Mint, Running Clang-14 for compiling and linking (Had to set DWARF4 format for some reason). If switching to LLDB this no longer happens. I can see the break point being removed and re-added several times in the log ending with a remove. It is only remove when hit. A break point in the main.cpp or in the main project will not be removed once hit. I have tried several settings and nothing helps. Here is the GDB log for when the break point is hit obfuscated.

DEBUG>>=breakpoint-modified,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="",times="1",original-location="theFile:55",locations=[{number="3.1",enabled="y",addr="0x00005555555aebcc",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]},{number="3.2",enabled="y",addr="0x00007ffff7bc393c",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]}]} =breakpoint-modified,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="",times="1",original-location="theFile:55",locations=[{number="3.1",enabled="y",addr="0x00005555555aebcc",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]},{number="3.2",enabled="y",addr="0x00007ffff7bc393c",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]}]} DEBUG>>~"\n" DEBUG>>~"Thread 1 \"UnitTests\" hit Breakpoint 3, Common::TheClass::GetDrawOverChild (this=0x555556029850) at theFile:55\n" Thread 1 "UnitTests" hit Breakpoint 3, Common::TheClass::GetDrawOverChild (this=0x555556029850) at theFile:55 DEBUG>>~"55\t return &dropDownFrame;\n" 55\t return &dropDownFrame; DEBUG>>*stopped,reason="breakpoint-hit",disp="keep",bkptno="3",frame={addr="0x00005555555aebcc",func="Common::TheClass::GetDrawOverChild",args=[{name="this",value="0x555556029850"}],file="theFile",fullname="theFile",line="55",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="15" DEBUG>>00000468-file-list-exec-source-file DEBUG>>00000469-break-list DEBUG>>00000468^done,line="55",file="theFile",fullname="theFile",macro-info="0" DEBUG>>00000469^done,BreakpointTable={nr_rows="3",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="catchpoint",disp="keep",enabled="y",what="exception throw",catch-type="throw",thread-groups=["i1"],times="0"},bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x000055555557a940",func="main(int, char*)",file="src/cpp/main.cpp",fullname="mainFile",line="175",thread-groups=["i1"],times="1",original-location="mainFile"},bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="",times="1",original-location="theFile:55",locations=[{number="3.1",enabled="y",addr="0x00005555555aebcc",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]},{number="3.2",enabled="y",addr="0x00007ffff7bc393c",func="theFunction",file="theFile",fullname="theFile",line="55",thread-groups=["i1"]}]}]} DEBUG>>00000470-var-create - dropDownFrame DEBUG>>00000470^done,name="var1",numchild="1",value="{...}",type="Common::TheClass",has_more="0" DEBUG>>00000471-var-delete var1 DEBUG>>00000472-var-create - * dropDownFrame DEBUG>>00000471^done,ndeleted="1" DEBUG>>00000472^done,name="var2",numchild="1",value="{...}",type="Common::TheClass",has_more="0" DEBUG>>00000473-var-list-children var2 0 100 DEBUG>>00000473^done,numchild="1",children=[child={name="var2.Common::TheClass",exp="Common::TheClass",numchild="2",type="Common::TheClass"}],has_more="0" DEBUG>>00000474-var-evaluate-expression var2.Common::TheClass DEBUG>>00000474^done,value="{...}" DEBUG>>00000475-var-delete var2 DEBUG>>00000475^done,ndeleted="2"

shadoww1028 commented 2 years ago

I just tried Static Linking instead of Dynamic Linking and this no long occurs. So Break points are only remove if Dynamic Linking.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs (within 5 days). Thank you for your contributions.

shadoww1028 commented 2 years ago

Bump

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs (within 5 days). Thank you for your contributions.

shadoww1028 commented 4 months ago

I have not seen this on 17.9 BUT the are sometimes not viable. They are however in the break points list in the GDB window.