diff --git a/org.eclipse.jdt.debug.ui/plugin.properties b/org.eclipse.jdt.debug.ui/plugin.properties
index db85c36..513fdd6 100644
--- a/org.eclipse.jdt.debug.ui/plugin.properties
+++ b/org.eclipse.jdt.debug.ui/plugin.properties
@@ -17,6 +17,7 @@
 vmInstallPage=VM Install Page
 vmCapabilitiesPageName=VM Capabilities
 AddBreakpoint.label=Toggle &Breakpoint
+AddTracepoint.label=Toggle &Tracepoint
 
 addTypeStepFilterAction.label=&Filter Type
 addTypeStepFilterAction.tooltip=Filter the selected type(s)
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index 287975f..877e24c 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -152,8 +152,8 @@
          <action
                definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
                label="%ToggleTracepointAction.label"
-               icon="$nl$/icons/full/obj16/brkp_obj.png"
-               disabledIcon="$nl$/icons/full/obj16/brkpd_obj.png"
+               icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+               disabledIcon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj_disabled.png"
                helpContextId="toggle_tracepoint_action_context"
                class="org.eclipse.jdt.internal.debug.ui.actions.RetargetToggleTracepointAction"
                menubarPath="org.eclipse.ui.run/lineBreakpointBeforeGroup"
@@ -972,6 +972,15 @@
                 menubarPath="debug">
          </action>
          <action
+               class="org.eclipse.jdt.internal.debug.ui.actions.RulerToggleTracepointActionDelegate"
+               helpContextId="manage_breakpoint_action_context"
+               icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+               id="org.eclipse.jdt.debug.ui.actions.RulerToggleTracepointAction"
+               definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
+               label="%AddTracepoint.label"
+               menubarPath="debug">
+         </action>
+         <action
                label="%EnableBreakpoint.label"
                helpContextId="enable_disable_breakpoint_action_context"
                class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
@@ -1007,6 +1016,15 @@
                 menubarPath="debug">
          </action>
          <action
+               class="org.eclipse.jdt.internal.debug.ui.actions.RulerToggleTracepointActionDelegate"
+               helpContextId="toggle_tracepoint_action_context"
+               icon="platform:/plugin/org.eclipse.debug.ui/icons/full/obj16/read_obj.png"
+               id="org.eclipse.jdt.debug.ui.actions.RulerToggleTracepointAction"
+               definitionId="org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"
+               label="%AddTracepoint.label"
+               menubarPath="debug">
+         </action>
+         <action
                label="%EnableBreakpoint.label"
                helpContextId="enable_disable_breakpoint_action_context"
                class="org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java
new file mode 100644
index 0000000..6edd6a7
--- /dev/null
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RulerToggleTracepointActionDelegate.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2020, Andrey Loskutov <loskutov@gmx.de> and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Andrey Loskutov <loskutov@gmx.de> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.internal.debug.ui.actions;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.text.source.IVerticalRulerInfo;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IActionDelegate2;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.texteditor.AbstractRulerActionDelegate;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+public class RulerToggleTracepointActionDelegate extends AbstractRulerActionDelegate implements IActionDelegate2 {
+
+	private static final String TOGGLE_TRACEPOINT_COMMAND = "org.eclipse.jdt.debug.ui.commands.ToggleTracepoint"; //$NON-NLS-1$
+	private IEditorPart currentEditor;
+	private IAction dummyAction;
+
+	@Override
+	protected IAction createAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) {
+		dummyAction = new Action() {
+			// empty implementation to make compiler happy
+		};
+		return dummyAction;
+	}
+
+	@Override
+	public void setActiveEditor(IAction callerAction, IEditorPart targetEditor) {
+		currentEditor = targetEditor;
+	}
+
+	@Override
+	public void init(IAction action) {
+	}
+
+	@Override
+	public void dispose() {
+		currentEditor = null;
+		dummyAction = null;
+		super.dispose();
+	}
+
+	@Override
+	public void runWithEvent(IAction action, Event event) {
+		if (currentEditor == null) {
+			return;
+		}
+		IWorkbenchPartSite partSite = currentEditor.getSite();
+		IHandlerService hservice = partSite.getService(IHandlerService.class);
+		ICommandService cservice = partSite.getService(ICommandService.class);
+		try {
+			Command command = cservice.getCommand(TOGGLE_TRACEPOINT_COMMAND);
+			ExecutionEvent exevent = hservice.createExecutionEvent(command, event);
+			command.executeWithChecks(exevent);
+		} catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e) {
+			DebugUIPlugin.log(e);
+		}
+	}
+
+}
