###############################################################################
# Copyright (c) 2000, 2010 IBM Corporation 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:
#     IBM Corporation - initial API and implementation
###############################################################################

ConditionalBreakpointHandler_0=Conditional breakpoint evaluation interrupted
ConditionalBreakpointHandler_1=Result of breakpoint conditional expression was not a boolean: {0}
JavaBreakpoint___Hit_Count___0___1=\ [hit count: {0}]
JavaBreakpoint_Exception=Exception occurred while updating breakpoint.
JavaPatternBreakpoint_0=Breakpoint installation failed
JavaBreakpoint__suspend_policy__thread__1=[suspend policy: thread]
JavaBreakpoint__suspend_policy__VM__2=[suspend policy: VM]

JavaLineBreakpoint___Condition___0___2=\ [condition: {0}]
JavaLineBreakpoint_Unable_to_compile_conditional_breakpoint___missing_Java_project_context__1=Unable to compile conditional breakpoint - missing Java project context.
JavaLineBreakpoint_Unable_to_create_breakpoint_request___VM_disconnected__1=Unable to create breakpoint request - VM disconnected.
JavaLineBreakpoint___line___0___1=\ [line: {0}]
JavaLineBreakpoint_Absent_Line_Number_Information_1=Absent Line Number Information

JavaPatternBreakpoint_exception_source_name={0} occurred while determining source name debug attribute for {1}
JavaPatternBreakpoint_Unable_to_add_breakpoint___VM_disconnected__1=Unable to add breakpoint - VM disconnected.

JavaWatchpoint_no_access_watchpoints=VM does not support access watchpoints.
JavaWatchpoint_no_modification_watchpoints=VM does not support modification watchpoints.
JavaWatchpoint_Unable_to_create_breakpoint_request___VM_disconnected__1=Unable to create breakpoint request - VM disconnected.

JavaExceptionBreakpoint_Unable_to_create_breakpoint_request___VM_disconnected__1=Unable to create breakpoint request - VM disconnected.

JavaMethodBreakpoint_0=Unable to restore type name pattern on method breakpoint
JavaMethodBreakpoint_Unable_to_create_breakpoint_request___VM_disconnected__1=Unable to create breakpoint request - VM disconnected.

JavaTargetPatternBreakpoint_Unable_to_add_breakpoint___VM_disconnected__1=Unable to add breakpoint - VM disconnected.

JavaClassPrepareBreakpoint_2=Class prepare breakpoint does not support instance filters
JavaClassPrepareBreakpoint_3=Class prepare breakpoint does not support thread filters
