blob: 4b8fdee32497fa937e726163610932d7add47ed8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2013 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
* and Eclipse Distribution License v1.0 which accompany this distribution.
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
* You may elect to redistribute this code under either of these licenses.
*
* Contributors:
* Wind River Systems - initial API and implementation
*******************************************************************************/
/*
* This module implements DWARF expressions evaluation.
*
* Functions in this module use exceptions to report errors, see exceptions.h
*/
#ifndef D_dwarfexpr
#define D_dwarfexpr
#include <tcf/config.h>
#if ENABLE_ELF && ENABLE_DebugContext
#include <tcf/services/dwarfcache.h>
/* PropertyValue format for expresson evaluation results */
#define FORM_EXPR_VALUE 0x00ff
typedef struct DWARFExpressionInfo {
U8_T code_addr;
U8_T code_size;
ObjectInfo * object;
ELF_Section * section;
U1_T * expr_addr;
size_t expr_size;
U2_T attr;
U2_T form;
struct DWARFExpressionInfo * next;
} DWARFExpressionInfo;
extern void dwarf_get_expression_list(PropertyValue * Value, DWARFExpressionInfo ** List);
extern void dwarf_evaluate_expression(PropertyValue * value, uint64_t * args, unsigned args_cnt);
#endif /* ENABLE_ELF && ENABLE_DebugContext */
#endif /* D_dwarfexpr */