| /******************************************************************************* |
| * Copyright (c) 2007 Wind River Systems, Inc. and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Wind River Systems - initial API and implementation |
| *******************************************************************************/ |
| |
| /* |
| * This module implements Breakpoints service. |
| * The service maintains a list of breakpoints. |
| * Each breakpoint consists of one or more conditions that determine |
| * when a program's execution should be interrupted. |
| */ |
| |
| #ifndef D_breakpoints |
| #define D_breakpoints |
| |
| #include "context.h" |
| #include "streams.h" |
| |
| typedef unsigned long address_t; |
| |
| typedef struct SkipBreakpointInfo SkipBreakpointInfo; |
| |
| struct SkipBreakpointInfo { |
| Context * ctx; |
| address_t address; |
| int pending_intercept; |
| void (*done)(SkipBreakpointInfo *); |
| OutputStream * out; |
| char token[256]; |
| int error; |
| }; |
| |
| extern int is_stopped_by_breakpoint(Context * ctx); |
| |
| extern int evaluate_breakpoint_condition(Context * ctx); |
| |
| extern SkipBreakpointInfo * skip_breakpoint(Context * ctx); |
| |
| extern void ini_breakpoints_service(void); |
| |
| #endif |