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>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/mdb/common/kmdb/kvm.h
          +++ new/usr/src/cmd/mdb/common/kmdb/kvm.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + *
       25 + * Copyright 2018 Joyent, Inc.
  24   26   */
  25   27  
  26   28  #ifndef _KVM_H
  27   29  #define _KVM_H
  28   30  
  29      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  30      -
  31   31  /*
  32   32   * The kmdb target
  33   33   */
  34   34  
  35   35  #include <mdb/mdb_modapi.h>
  36   36  #include <mdb/mdb_target.h>
  37   37  #include <kmdb/kmdb_dpi.h>
  38   38  #include <kmdb/kvm_isadep.h>
  39      -#include <kmdb/kvm_cpu.h>
  40   39  
  41   40  #include <sys/kobj.h>
  42   41  
  43   42  #ifdef __cplusplus
  44   43  extern "C" {
  45   44  #endif
  46   45  
  47   46  #define KM_F_PRIMARY            1
  48   47  
  49   48  #define KMT_TRAP_NOTENUM        -1      /* Glob for unnamed traps */
↓ open down ↓ 29 lines elided ↑ open up ↑
  79   78  typedef struct kmt_data {
  80   79          const mdb_tgt_regdesc_t *kmt_rds;       /* Register description table */
  81   80          mdb_nv_t        kmt_modules;            /* Hash table of modules */
  82   81          mdb_list_t      kmt_modlist;            /* List of mods in load order */
  83   82          const char      *kmt_rtld_name;         /* Module containing krtld */
  84   83          caddr_t         kmt_writemap;           /* Used to map PAs for writes */
  85   84          size_t          kmt_writemapsz;         /* Size of same */
  86   85          mdb_map_t       kmt_map;                /* Persistant map for callers */
  87   86          ulong_t         *kmt_trapmap;
  88   87          size_t          kmt_trapmax;
  89      -        kmt_cpu_t       *kmt_cpu;               /* CPU-specific plugin */
  90      -        int             kmt_cpu_retry;          /* Try CPU detect again? */
  91   88          int             kmt_symavail;           /* Symbol resolution allowed */
  92   89          uint_t          kmt_narmedbpts;         /* Number of armed brkpts */
  93   90  #if defined(__i386) || defined(__amd64)
  94   91          struct {
  95   92                  GElf_Sym        _kmt_cmnint;
  96   93                  GElf_Sym        _kmt_cmntrap;
  97   94                  GElf_Sym        _kmt_sysenter;
  98   95                  GElf_Sym        _kmt_brand_sysenter;
  99   96  #if defined(__amd64)
 100   97                  GElf_Sym        _kmt_syscall;
↓ open down ↓ 35 lines elided ↑ open up ↑
 136  133  
 137  134  extern ssize_t kmt_write(mdb_tgt_t *, const void *, size_t, uintptr_t);
 138  135  extern ssize_t kmt_pwrite(mdb_tgt_t *, const void *, size_t, physaddr_t);
 139  136  extern ssize_t kmt_rw(mdb_tgt_t *, void *, size_t, uint64_t,
 140  137      ssize_t (*)(void *, size_t, uint64_t));
 141  138  extern ssize_t kmt_writer(void *, size_t, uint64_t);
 142  139  extern ssize_t kmt_ioread(mdb_tgt_t *, void *, size_t, uintptr_t);
 143  140  extern ssize_t kmt_iowrite(mdb_tgt_t *, const void *, size_t, uintptr_t);
 144  141  
 145  142  extern int kmt_step_out(mdb_tgt_t *, uintptr_t *);
 146      -extern int kmt_step_branch(mdb_tgt_t *);
 147  143  extern int kmt_next(mdb_tgt_t *, uintptr_t *);
 148  144  
 149  145  extern int kmt_stack(uintptr_t, uint_t, int, const mdb_arg_t *);
 150  146  extern int kmt_stackv(uintptr_t, uint_t, int, const mdb_arg_t *);
 151  147  extern int kmt_stackr(uintptr_t, uint_t, int, const mdb_arg_t *);
 152  148  extern int kmt_cpustack(uintptr_t, uint_t, int, const mdb_arg_t *, int, int);
 153  149  
 154  150  extern const char *kmt_trapname(int);
 155  151  
 156  152  #ifdef __cplusplus
 157  153  }
 158  154  #endif
 159  155  
 160  156  #endif /* _KVM_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX