Print this page
9210 remove KMDB branch debugging support
9211 ::crregs could do with cr2/cr3 support
9209 ::ttrace should be able to filter by thread
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>


   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 /*
  26  * Copyright (c) 2012, Joyent, Inc.  All rights reserved.
  27  */
  28 
  29 #ifndef _MDB_TARGET_IMPL_H
  30 #define _MDB_TARGET_IMPL_H
  31 
  32 #include <mdb/mdb_target.h>
  33 #include <mdb/mdb_module.h>
  34 #include <mdb/mdb_list.h>
  35 #include <mdb/mdb_gelf.h>
  36 #include <sys/auxv.h>
  37 
  38 #ifdef  __cplusplus
  39 extern "C" {
  40 #endif
  41 
  42 #ifdef _MDB
  43 
  44 /*
  45  * Target Operations
  46  *


  87             const char *, const char *, GElf_Sym *, mdb_syminfo_t *);
  88 
  89         int (*t_lookup_by_addr)(mdb_tgt_t *,
  90             uintptr_t, uint_t, char *, size_t, GElf_Sym *, mdb_syminfo_t *);
  91 
  92         int (*t_symbol_iter)(mdb_tgt_t *,
  93             const char *, uint_t, uint_t, mdb_tgt_sym_f *, void *);
  94 
  95         int (*t_mapping_iter)(mdb_tgt_t *, mdb_tgt_map_f *, void *);
  96         int (*t_object_iter)(mdb_tgt_t *, mdb_tgt_map_f *, void *);
  97 
  98         const mdb_map_t *(*t_addr_to_map)(mdb_tgt_t *, uintptr_t);
  99         const mdb_map_t *(*t_name_to_map)(mdb_tgt_t *, const char *);
 100         struct ctf_file *(*t_addr_to_ctf)(mdb_tgt_t *, uintptr_t);
 101         struct ctf_file *(*t_name_to_ctf)(mdb_tgt_t *, const char *);
 102 
 103         int (*t_status)(mdb_tgt_t *, mdb_tgt_status_t *);
 104         int (*t_run)(mdb_tgt_t *, int, const struct mdb_arg *);
 105         int (*t_step)(mdb_tgt_t *, mdb_tgt_status_t *);
 106         int (*t_step_out)(mdb_tgt_t *, uintptr_t *);
 107         int (*t_step_branch)(mdb_tgt_t *);
 108         int (*t_next)(mdb_tgt_t *, uintptr_t *);
 109         int (*t_cont)(mdb_tgt_t *, mdb_tgt_status_t *);
 110         int (*t_signal)(mdb_tgt_t *, int);
 111 
 112         int (*t_add_vbrkpt)(mdb_tgt_t *, uintptr_t,
 113             int, mdb_tgt_se_f *, void *);
 114         int (*t_add_sbrkpt)(mdb_tgt_t *, const char *,
 115             int, mdb_tgt_se_f *, void *);
 116 
 117         int (*t_add_pwapt)(mdb_tgt_t *, physaddr_t, size_t, uint_t,
 118             int, mdb_tgt_se_f *, void *);
 119         int (*t_add_vwapt)(mdb_tgt_t *, uintptr_t, size_t, uint_t,
 120             int, mdb_tgt_se_f *, void *);
 121         int (*t_add_iowapt)(mdb_tgt_t *, uintptr_t, size_t, uint_t,
 122             int, mdb_tgt_se_f *, void *);
 123 
 124         int (*t_add_sysenter)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 125         int (*t_add_sysexit)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 126         int (*t_add_signal)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 127         int (*t_add_fault)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);




   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  */
  25 /*
  26  * Copyright (c) 2018, Joyent, Inc.  All rights reserved.
  27  */
  28 
  29 #ifndef _MDB_TARGET_IMPL_H
  30 #define _MDB_TARGET_IMPL_H
  31 
  32 #include <mdb/mdb_target.h>
  33 #include <mdb/mdb_module.h>
  34 #include <mdb/mdb_list.h>
  35 #include <mdb/mdb_gelf.h>
  36 #include <sys/auxv.h>
  37 
  38 #ifdef  __cplusplus
  39 extern "C" {
  40 #endif
  41 
  42 #ifdef _MDB
  43 
  44 /*
  45  * Target Operations
  46  *


  87             const char *, const char *, GElf_Sym *, mdb_syminfo_t *);
  88 
  89         int (*t_lookup_by_addr)(mdb_tgt_t *,
  90             uintptr_t, uint_t, char *, size_t, GElf_Sym *, mdb_syminfo_t *);
  91 
  92         int (*t_symbol_iter)(mdb_tgt_t *,
  93             const char *, uint_t, uint_t, mdb_tgt_sym_f *, void *);
  94 
  95         int (*t_mapping_iter)(mdb_tgt_t *, mdb_tgt_map_f *, void *);
  96         int (*t_object_iter)(mdb_tgt_t *, mdb_tgt_map_f *, void *);
  97 
  98         const mdb_map_t *(*t_addr_to_map)(mdb_tgt_t *, uintptr_t);
  99         const mdb_map_t *(*t_name_to_map)(mdb_tgt_t *, const char *);
 100         struct ctf_file *(*t_addr_to_ctf)(mdb_tgt_t *, uintptr_t);
 101         struct ctf_file *(*t_name_to_ctf)(mdb_tgt_t *, const char *);
 102 
 103         int (*t_status)(mdb_tgt_t *, mdb_tgt_status_t *);
 104         int (*t_run)(mdb_tgt_t *, int, const struct mdb_arg *);
 105         int (*t_step)(mdb_tgt_t *, mdb_tgt_status_t *);
 106         int (*t_step_out)(mdb_tgt_t *, uintptr_t *);

 107         int (*t_next)(mdb_tgt_t *, uintptr_t *);
 108         int (*t_cont)(mdb_tgt_t *, mdb_tgt_status_t *);
 109         int (*t_signal)(mdb_tgt_t *, int);
 110 
 111         int (*t_add_vbrkpt)(mdb_tgt_t *, uintptr_t,
 112             int, mdb_tgt_se_f *, void *);
 113         int (*t_add_sbrkpt)(mdb_tgt_t *, const char *,
 114             int, mdb_tgt_se_f *, void *);
 115 
 116         int (*t_add_pwapt)(mdb_tgt_t *, physaddr_t, size_t, uint_t,
 117             int, mdb_tgt_se_f *, void *);
 118         int (*t_add_vwapt)(mdb_tgt_t *, uintptr_t, size_t, uint_t,
 119             int, mdb_tgt_se_f *, void *);
 120         int (*t_add_iowapt)(mdb_tgt_t *, uintptr_t, size_t, uint_t,
 121             int, mdb_tgt_se_f *, void *);
 122 
 123         int (*t_add_sysenter)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 124         int (*t_add_sysexit)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 125         int (*t_add_signal)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);
 126         int (*t_add_fault)(mdb_tgt_t *, int, int, mdb_tgt_se_f *, void *);