Skip to content

Commit f907d11

Browse files
author
Danny Milosavljevic
committed
Add "-f" config support for breakpoints.
1 parent b201ba2 commit f907d11

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

src/main/java/com/friendly_machines/intellij/plugins/ideanative2debugger/BreakpointProperties.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ public class BreakpointProperties extends BreakpointPropertiesHelper<BreakpointP
1212
@Override
1313
public void loadState(@NotNull BreakpointProperties state) {
1414
myHardware = state.myHardware;
15+
myForce = state.myForce;
1516
}
1617
@Override
1718
public void noStateLoaded() {
1819
super.noStateLoaded();
1920
myHardware = false;
21+
myForce = true;
2022
}
2123

2224
public BreakpointProperties() {
25+
myHardware = false;
26+
myForce = true;
2327
}
2428
}

src/main/java/com/friendly_machines/intellij/plugins/ideanative2debugger/BreakpointPropertiesHelper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@
88
public abstract class BreakpointPropertiesHelper<T> extends XBreakpointProperties<T> {
99
@Attribute("hardware")
1010
public boolean myHardware;
11+
12+
@Attribute("force")
13+
public boolean myForce;
1114
}

src/main/java/com/friendly_machines/intellij/plugins/ideanative2debugger/BreakpointPropertiesPanel.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,35 @@
1111

1212
public class BreakpointPropertiesPanel extends XBreakpointCustomPropertiesPanel<XLineBreakpoint<BreakpointProperties>> {
1313
private JCheckBox myHardwareCheckBox;
14+
private JCheckBox myForceCheckBox;
1415

1516
@Override
1617
public @NotNull JComponent getComponent() {
1718
// TODO: Use Bundle for translations.
1819
myHardwareCheckBox = new JCheckBox("Hardware breakpoint");
20+
myForceCheckBox = new JCheckBox("Force breakpoint even if location is currently unknown");
1921
var mainPanel = new JPanel(new BorderLayout());
20-
mainPanel.add(myHardwareCheckBox);
22+
var box = Box.createVerticalBox();
23+
mainPanel.add(box, BorderLayout.CENTER);
24+
box.add(myHardwareCheckBox);
25+
box.add(myForceCheckBox);
2126
return mainPanel;
2227
}
2328

2429
@Override
2530
public void loadFrom(@NotNull XLineBreakpoint<BreakpointProperties> breakpoint) {
26-
myHardwareCheckBox.setSelected(breakpoint.getProperties().myHardware);
31+
var properties = breakpoint.getProperties();
32+
myHardwareCheckBox.setSelected(properties.myHardware);
33+
myForceCheckBox.setSelected(properties.myForce);
2734
}
2835

2936
@Override
3037
public void saveTo(@NotNull XLineBreakpoint<BreakpointProperties> breakpoint) {
31-
var changed = breakpoint.getProperties().myHardware != myHardwareCheckBox.isSelected();
32-
breakpoint.getProperties().myHardware = myHardwareCheckBox.isSelected();
38+
var properties = breakpoint.getProperties();
39+
var changed = properties.myHardware != myHardwareCheckBox.isSelected() ||
40+
properties.myForce != myForceCheckBox.isSelected();
41+
properties.myHardware = myHardwareCheckBox.isSelected();
42+
properties.myForce = myForceCheckBox.isSelected();
3343
if (changed) {
3444
((XBreakpointBase) breakpoint).fireBreakpointChanged();
3545
}

src/main/java/com/friendly_machines/intellij/plugins/ideanative2debugger/impl/BreakpointManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,9 @@ public boolean addBreakpoint(@NotNull XLineBreakpoint<BreakpointProperties> key)
215215
options.add("-h");
216216
}
217217

218-
options.add("-f"); // TODO: Make a config setting.
218+
if (properties.myForce) {
219+
options.add("-f");
220+
}
219221
// TODO: "-i ignore-count"
220222
// TODO: "-p thread-id"
221223
// TODO: -break-passcount <tracepoint-id> <passcount>

0 commit comments

Comments
 (0)