LLDB  mainline
RegisterContextDarwin_x86_64.cpp
Go to the documentation of this file.
1 //===-- RegisterContextDarwin_x86_64.cpp ----------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include <cinttypes>
10 #include <cstdarg>
11 #include <cstddef>
12 
13 #include <memory>
14 
17 #include "lldb/Utility/Endian.h"
18 #include "lldb/Utility/Log.h"
20 #include "lldb/Utility/Scalar.h"
21 #include "llvm/ADT/STLExtras.h"
22 #include "llvm/Support/Compiler.h"
23 
25 
26 using namespace lldb;
27 using namespace lldb_private;
28 
29 enum {
30  gpr_rax = 0,
51 
86 
90 
92 
93  // Aliases
101 };
102 
145 
146 };
147 
148 #define GPR_OFFSET(reg) \
149  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::GPR, reg))
150 #define FPU_OFFSET(reg) \
151  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::FPU, reg) + \
152  sizeof(RegisterContextDarwin_x86_64::GPR))
153 #define EXC_OFFSET(reg) \
154  (LLVM_EXTENSION offsetof(RegisterContextDarwin_x86_64::EXC, reg) + \
155  sizeof(RegisterContextDarwin_x86_64::GPR) + \
156  sizeof(RegisterContextDarwin_x86_64::FPU))
157 
158 // These macros will auto define the register name, alt name, register size,
159 // register offset, encoding, format and native register. This ensures that the
160 // register state structures are defined correctly and have the correct sizes
161 // and offsets.
162 #define DEFINE_GPR(reg, alt) \
163  #reg, alt, sizeof(((RegisterContextDarwin_x86_64::GPR *) NULL)->reg), \
164  GPR_OFFSET(reg), eEncodingUint, eFormatHex
165 #define DEFINE_FPU_UINT(reg) \
166  #reg, NULL, sizeof(((RegisterContextDarwin_x86_64::FPU *) NULL)->reg), \
167  FPU_OFFSET(reg), eEncodingUint, eFormatHex
168 #define DEFINE_FPU_VECT(reg, i) \
169  #reg #i, NULL, \
170  sizeof(((RegisterContextDarwin_x86_64::FPU *) NULL)->reg[i].bytes), \
171  FPU_OFFSET(reg[i]), eEncodingVector, eFormatVectorOfUInt8, \
172  {ehframe_dwarf_fpu_##reg##i, \
173  ehframe_dwarf_fpu_##reg##i, LLDB_INVALID_REGNUM, \
174  LLDB_INVALID_REGNUM, fpu_##reg##i }, \
175  nullptr, nullptr,
176 #define DEFINE_EXC(reg) \
177  #reg, NULL, sizeof(((RegisterContextDarwin_x86_64::EXC *) NULL)->reg), \
178  EXC_OFFSET(reg), eEncodingUint, eFormatHex
179 
180 #define REG_CONTEXT_SIZE \
181  (sizeof(RegisterContextDarwin_x86_64::GPR) + \
182  sizeof(RegisterContextDarwin_x86_64::FPU) + \
183  sizeof(RegisterContextDarwin_x86_64::EXC))
184 
185 // General purpose registers for 64 bit
186 static RegisterInfo g_register_infos[] = {
187  // Macro auto defines most stuff EH_FRAME DWARF
188  // GENERIC PROCESS PLUGIN LLDB
189  // =============================== ======================
190  // =================== ========================== ====================
191  // ===================
192  {DEFINE_GPR(rax, nullptr),
195  nullptr,
196  nullptr,
197  },
198  {DEFINE_GPR(rbx, nullptr),
201  nullptr,
202  nullptr,
203  },
204  {DEFINE_GPR(rcx, nullptr),
207  nullptr,
208  nullptr,
209  },
210  {DEFINE_GPR(rdx, nullptr),
213  nullptr,
214  nullptr,
215  },
216  {DEFINE_GPR(rdi, nullptr),
219  nullptr,
220  nullptr,
221  },
222  {DEFINE_GPR(rsi, nullptr),
225  nullptr,
226  nullptr,
227  },
228  {DEFINE_GPR(rbp, "fp"),
231  nullptr,
232  nullptr,
233  },
234  {DEFINE_GPR(rsp, "sp"),
237  nullptr,
238  nullptr,
239  },
240  {DEFINE_GPR(r8, nullptr),
243  nullptr,
244  nullptr,
245  },
246  {DEFINE_GPR(r9, nullptr),
249  nullptr,
250  nullptr,
251  },
252  {DEFINE_GPR(r10, nullptr),
255  nullptr,
256  nullptr,
257  },
258  {DEFINE_GPR(r11, nullptr),
261  nullptr,
262  nullptr,
263  },
264  {DEFINE_GPR(r12, nullptr),
267  nullptr,
268  nullptr,
269  },
270  {DEFINE_GPR(r13, nullptr),
273  nullptr,
274  nullptr,
275  },
276  {DEFINE_GPR(r14, nullptr),
279  nullptr,
280  nullptr,
281  },
282  {DEFINE_GPR(r15, nullptr),
285  nullptr,
286  nullptr,
287  },
288  {DEFINE_GPR(rip, "pc"),
291  nullptr,
292  nullptr,
293  },
294  {DEFINE_GPR(rflags, "flags"),
297  nullptr,
298  nullptr,
299  },
300  {DEFINE_GPR(cs, nullptr),
303  nullptr,
304  nullptr,
305  },
306  {DEFINE_GPR(fs, nullptr),
309  nullptr,
310  nullptr,
311  },
312  {DEFINE_GPR(gs, nullptr),
315  nullptr,
316  nullptr,
317  },
318 
319  {DEFINE_FPU_UINT(fcw),
322  nullptr,
323  nullptr,
324  },
325  {DEFINE_FPU_UINT(fsw),
328  nullptr,
329  nullptr,
330  },
331  {DEFINE_FPU_UINT(ftw),
334  nullptr,
335  nullptr,
336  },
337  {DEFINE_FPU_UINT(fop),
340  nullptr,
341  nullptr,
342  },
343  {DEFINE_FPU_UINT(ip),
346  nullptr,
347  nullptr,
348  },
349  {DEFINE_FPU_UINT(cs),
352  nullptr,
353  nullptr,
354  },
355  {DEFINE_FPU_UINT(dp),
358  nullptr,
359  nullptr,
360  },
361  {DEFINE_FPU_UINT(ds),
364  nullptr,
365  nullptr,
366  },
367  {DEFINE_FPU_UINT(mxcsr),
370  nullptr,
371  nullptr,
372  },
373  {DEFINE_FPU_UINT(mxcsrmask),
376  nullptr,
377  nullptr,
378  },
379  {DEFINE_FPU_VECT(stmm, 0)},
380  {DEFINE_FPU_VECT(stmm, 1)},
381  {DEFINE_FPU_VECT(stmm, 2)},
382  {DEFINE_FPU_VECT(stmm, 3)},
383  {DEFINE_FPU_VECT(stmm, 4)},
384  {DEFINE_FPU_VECT(stmm, 5)},
385  {DEFINE_FPU_VECT(stmm, 6)},
386  {DEFINE_FPU_VECT(stmm, 7)},
387  {DEFINE_FPU_VECT(xmm, 0)},
388  {DEFINE_FPU_VECT(xmm, 1)},
389  {DEFINE_FPU_VECT(xmm, 2)},
390  {DEFINE_FPU_VECT(xmm, 3)},
391  {DEFINE_FPU_VECT(xmm, 4)},
392  {DEFINE_FPU_VECT(xmm, 5)},
393  {DEFINE_FPU_VECT(xmm, 6)},
394  {DEFINE_FPU_VECT(xmm, 7)},
395  {DEFINE_FPU_VECT(xmm, 8)},
396  {DEFINE_FPU_VECT(xmm, 9)},
397  {DEFINE_FPU_VECT(xmm, 10)},
398  {DEFINE_FPU_VECT(xmm, 11)},
399  {DEFINE_FPU_VECT(xmm, 12)},
400  {DEFINE_FPU_VECT(xmm, 13)},
401  {DEFINE_FPU_VECT(xmm, 14)},
402  {DEFINE_FPU_VECT(xmm, 15)},
403 
404  {DEFINE_EXC(trapno),
407  nullptr,
408  nullptr,
409  },
410  {DEFINE_EXC(err),
413  nullptr,
414  nullptr,
415  },
416  {DEFINE_EXC(faultvaddr),
419  nullptr,
420  nullptr,
421  }};
422 
423 static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
424 
426  Thread &thread, uint32_t concrete_frame_idx)
427  : RegisterContext(thread, concrete_frame_idx), gpr(), fpu(), exc() {
428  uint32_t i;
429  for (i = 0; i < kNumErrors; i++) {
430  gpr_errs[i] = -1;
431  fpu_errs[i] = -1;
432  exc_errs[i] = -1;
433  }
434 }
435 
437 
440 }
441 
444  return k_num_registers;
445 }
446 
447 const RegisterInfo *
450  if (reg < k_num_registers)
451  return &g_register_infos[reg];
452  return nullptr;
453 }
454 
456  return k_num_register_infos;
457 }
458 
459 const lldb_private::RegisterInfo *
461  return g_register_infos;
462 }
463 
468 
476 
478 
479 // Number of registers in each register set
480 const size_t k_num_gpr_registers = llvm::array_lengthof(g_gpr_regnums);
481 const size_t k_num_fpu_registers = llvm::array_lengthof(g_fpu_regnums);
482 const size_t k_num_exc_registers = llvm::array_lengthof(g_exc_regnums);
483 
484 // Register set definitions. The first definitions at register set index of
485 // zero is for all registers, followed by other registers sets. The register
486 // information for the all register set need not be filled in.
487 static const RegisterSet g_reg_sets[] = {
488  {
489  "General Purpose Registers", "gpr", k_num_gpr_registers, g_gpr_regnums,
490  },
491  {"Floating Point Registers", "fpu", k_num_fpu_registers, g_fpu_regnums},
492  {"Exception State Registers", "exc", k_num_exc_registers, g_exc_regnums}};
493 
494 const size_t k_num_regsets = llvm::array_lengthof(g_reg_sets);
495 
497  return k_num_regsets;
498 }
499 
500 const RegisterSet *
502  if (reg_set < k_num_regsets)
503  return &g_reg_sets[reg_set];
504  return nullptr;
505 }
506 
508  if (reg_num < fpu_fcw)
509  return GPRRegSet;
510  else if (reg_num < exc_trapno)
511  return FPURegSet;
512  else if (reg_num < k_num_registers)
513  return EXCRegSet;
514  return -1;
515 }
516 
518  int set = GPRRegSet;
519  if (force || !RegisterSetIsCached(set)) {
521  }
522  return GetError(GPRRegSet, Read);
523 }
524 
526  int set = FPURegSet;
527  if (force || !RegisterSetIsCached(set)) {
529  }
530  return GetError(FPURegSet, Read);
531 }
532 
534  int set = EXCRegSet;
535  if (force || !RegisterSetIsCached(set)) {
537  }
538  return GetError(EXCRegSet, Read);
539 }
540 
542  int set = GPRRegSet;
543  if (!RegisterSetIsCached(set)) {
544  SetError(set, Write, -1);
545  return -1;
546  }
548  SetError(set, Read, -1);
549  return GetError(set, Write);
550 }
551 
553  int set = FPURegSet;
554  if (!RegisterSetIsCached(set)) {
555  SetError(set, Write, -1);
556  return -1;
557  }
559  SetError(set, Read, -1);
560  return GetError(set, Write);
561 }
562 
564  int set = EXCRegSet;
565  if (!RegisterSetIsCached(set)) {
566  SetError(set, Write, -1);
567  return -1;
568  }
570  SetError(set, Read, -1);
571  return GetError(set, Write);
572 }
573 
575  switch (set) {
576  case GPRRegSet:
577  return ReadGPR(force);
578  case FPURegSet:
579  return ReadFPU(force);
580  case EXCRegSet:
581  return ReadEXC(force);
582  default:
583  break;
584  }
585  return -1;
586 }
587 
589  // Make sure we have a valid context to set.
590  switch (set) {
591  case GPRRegSet:
592  return WriteGPR();
593  case FPURegSet:
594  return WriteFPU();
595  case EXCRegSet:
596  return WriteEXC();
597  default:
598  break;
599  }
600  return -1;
601 }
602 
603 bool RegisterContextDarwin_x86_64::ReadRegister(const RegisterInfo *reg_info,
604  RegisterValue &value) {
605  const uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
607  if (set == -1)
608  return false;
609 
610  if (ReadRegisterSet(set, false) != 0)
611  return false;
612 
613  switch (reg) {
614  case gpr_rax:
615  case gpr_rbx:
616  case gpr_rcx:
617  case gpr_rdx:
618  case gpr_rdi:
619  case gpr_rsi:
620  case gpr_rbp:
621  case gpr_rsp:
622  case gpr_r8:
623  case gpr_r9:
624  case gpr_r10:
625  case gpr_r11:
626  case gpr_r12:
627  case gpr_r13:
628  case gpr_r14:
629  case gpr_r15:
630  case gpr_rip:
631  case gpr_rflags:
632  case gpr_cs:
633  case gpr_fs:
634  case gpr_gs:
635  value = (&gpr.rax)[reg - gpr_rax];
636  break;
637 
638  case fpu_fcw:
639  value = fpu.fcw;
640  break;
641 
642  case fpu_fsw:
643  value = fpu.fsw;
644  break;
645 
646  case fpu_ftw:
647  value = fpu.ftw;
648  break;
649 
650  case fpu_fop:
651  value = fpu.fop;
652  break;
653 
654  case fpu_ip:
655  value = fpu.ip;
656  break;
657 
658  case fpu_cs:
659  value = fpu.cs;
660  break;
661 
662  case fpu_dp:
663  value = fpu.dp;
664  break;
665 
666  case fpu_ds:
667  value = fpu.ds;
668  break;
669 
670  case fpu_mxcsr:
671  value = fpu.mxcsr;
672  break;
673 
674  case fpu_mxcsrmask:
675  value = fpu.mxcsrmask;
676  break;
677 
678  case fpu_stmm0:
679  case fpu_stmm1:
680  case fpu_stmm2:
681  case fpu_stmm3:
682  case fpu_stmm4:
683  case fpu_stmm5:
684  case fpu_stmm6:
685  case fpu_stmm7:
686  value.SetBytes(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size,
688  break;
689 
690  case fpu_xmm0:
691  case fpu_xmm1:
692  case fpu_xmm2:
693  case fpu_xmm3:
694  case fpu_xmm4:
695  case fpu_xmm5:
696  case fpu_xmm6:
697  case fpu_xmm7:
698  case fpu_xmm8:
699  case fpu_xmm9:
700  case fpu_xmm10:
701  case fpu_xmm11:
702  case fpu_xmm12:
703  case fpu_xmm13:
704  case fpu_xmm14:
705  case fpu_xmm15:
706  value.SetBytes(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size,
708  break;
709 
710  case exc_trapno:
711  value = exc.trapno;
712  break;
713 
714  case exc_err:
715  value = exc.err;
716  break;
717 
718  case exc_faultvaddr:
719  value = exc.faultvaddr;
720  break;
721 
722  default:
723  return false;
724  }
725  return true;
726 }
727 
728 bool RegisterContextDarwin_x86_64::WriteRegister(const RegisterInfo *reg_info,
729  const RegisterValue &value) {
730  const uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
732 
733  if (set == -1)
734  return false;
735 
736  if (ReadRegisterSet(set, false) != 0)
737  return false;
738 
739  switch (reg) {
740  case gpr_rax:
741  case gpr_rbx:
742  case gpr_rcx:
743  case gpr_rdx:
744  case gpr_rdi:
745  case gpr_rsi:
746  case gpr_rbp:
747  case gpr_rsp:
748  case gpr_r8:
749  case gpr_r9:
750  case gpr_r10:
751  case gpr_r11:
752  case gpr_r12:
753  case gpr_r13:
754  case gpr_r14:
755  case gpr_r15:
756  case gpr_rip:
757  case gpr_rflags:
758  case gpr_cs:
759  case gpr_fs:
760  case gpr_gs:
761  (&gpr.rax)[reg - gpr_rax] = value.GetAsUInt64();
762  break;
763 
764  case fpu_fcw:
765  fpu.fcw = value.GetAsUInt16();
766  break;
767 
768  case fpu_fsw:
769  fpu.fsw = value.GetAsUInt16();
770  break;
771 
772  case fpu_ftw:
773  fpu.ftw = value.GetAsUInt8();
774  break;
775 
776  case fpu_fop:
777  fpu.fop = value.GetAsUInt16();
778  break;
779 
780  case fpu_ip:
781  fpu.ip = value.GetAsUInt32();
782  break;
783 
784  case fpu_cs:
785  fpu.cs = value.GetAsUInt16();
786  break;
787 
788  case fpu_dp:
789  fpu.dp = value.GetAsUInt32();
790  break;
791 
792  case fpu_ds:
793  fpu.ds = value.GetAsUInt16();
794  break;
795 
796  case fpu_mxcsr:
797  fpu.mxcsr = value.GetAsUInt32();
798  break;
799 
800  case fpu_mxcsrmask:
801  fpu.mxcsrmask = value.GetAsUInt32();
802  break;
803 
804  case fpu_stmm0:
805  case fpu_stmm1:
806  case fpu_stmm2:
807  case fpu_stmm3:
808  case fpu_stmm4:
809  case fpu_stmm5:
810  case fpu_stmm6:
811  case fpu_stmm7:
812  ::memcpy(fpu.stmm[reg - fpu_stmm0].bytes, value.GetBytes(),
813  value.GetByteSize());
814  break;
815 
816  case fpu_xmm0:
817  case fpu_xmm1:
818  case fpu_xmm2:
819  case fpu_xmm3:
820  case fpu_xmm4:
821  case fpu_xmm5:
822  case fpu_xmm6:
823  case fpu_xmm7:
824  case fpu_xmm8:
825  case fpu_xmm9:
826  case fpu_xmm10:
827  case fpu_xmm11:
828  case fpu_xmm12:
829  case fpu_xmm13:
830  case fpu_xmm14:
831  case fpu_xmm15:
832  ::memcpy(fpu.xmm[reg - fpu_xmm0].bytes, value.GetBytes(),
833  value.GetByteSize());
834  return false;
835 
836  case exc_trapno:
837  exc.trapno = value.GetAsUInt32();
838  break;
839 
840  case exc_err:
841  exc.err = value.GetAsUInt32();
842  break;
843 
844  case exc_faultvaddr:
845  exc.faultvaddr = value.GetAsUInt64();
846  break;
847 
848  default:
849  return false;
850  }
851  return WriteRegisterSet(set) == 0;
852 }
853 
855  lldb::DataBufferSP &data_sp) {
856  data_sp = std::make_shared<DataBufferHeap>(REG_CONTEXT_SIZE, 0);
857  if (ReadGPR(false) == 0 && ReadFPU(false) == 0 && ReadEXC(false) == 0) {
858  uint8_t *dst = data_sp->GetBytes();
859  ::memcpy(dst, &gpr, sizeof(gpr));
860  dst += sizeof(gpr);
861 
862  ::memcpy(dst, &fpu, sizeof(fpu));
863  dst += sizeof(gpr);
864 
865  ::memcpy(dst, &exc, sizeof(exc));
866  return true;
867  }
868  return false;
869 }
870 
872  const lldb::DataBufferSP &data_sp) {
873  if (data_sp && data_sp->GetByteSize() == REG_CONTEXT_SIZE) {
874  const uint8_t *src = data_sp->GetBytes();
875  ::memcpy(&gpr, src, sizeof(gpr));
876  src += sizeof(gpr);
877 
878  ::memcpy(&fpu, src, sizeof(fpu));
879  src += sizeof(gpr);
880 
881  ::memcpy(&exc, src, sizeof(exc));
882  uint32_t success_count = 0;
883  if (WriteGPR() == 0)
884  ++success_count;
885  if (WriteFPU() == 0)
886  ++success_count;
887  if (WriteEXC() == 0)
888  ++success_count;
889  return success_count == 3;
890  }
891  return false;
892 }
893 
895  lldb::RegisterKind kind, uint32_t reg) {
896  if (kind == eRegisterKindGeneric) {
897  switch (reg) {
899  return gpr_rip;
901  return gpr_rsp;
903  return gpr_rbp;
905  return gpr_rflags;
907  default:
908  break;
909  }
910  } else if (kind == eRegisterKindEHFrame || kind == eRegisterKindDWARF) {
911  switch (reg) {
913  return gpr_rax;
915  return gpr_rdx;
917  return gpr_rcx;
919  return gpr_rbx;
921  return gpr_rsi;
923  return gpr_rdi;
925  return gpr_rbp;
927  return gpr_rsp;
929  return gpr_r8;
931  return gpr_r9;
933  return gpr_r10;
935  return gpr_r11;
937  return gpr_r12;
939  return gpr_r13;
941  return gpr_r14;
943  return gpr_r15;
945  return gpr_rip;
947  return fpu_xmm0;
949  return fpu_xmm1;
951  return fpu_xmm2;
953  return fpu_xmm3;
955  return fpu_xmm4;
957  return fpu_xmm5;
959  return fpu_xmm6;
961  return fpu_xmm7;
963  return fpu_xmm8;
965  return fpu_xmm9;
967  return fpu_xmm10;
969  return fpu_xmm11;
971  return fpu_xmm12;
973  return fpu_xmm13;
975  return fpu_xmm14;
977  return fpu_xmm15;
979  return fpu_stmm0;
981  return fpu_stmm1;
983  return fpu_stmm2;
985  return fpu_stmm3;
987  return fpu_stmm4;
989  return fpu_stmm5;
991  return fpu_stmm6;
993  return fpu_stmm7;
994  default:
995  break;
996  }
997  } else if (kind == eRegisterKindLLDB) {
998  return reg;
999  }
1000  return LLDB_INVALID_REGNUM;
1001 }
1002 
1004  if (ReadGPR(true) != 0)
1005  return false;
1006 
1007  const uint64_t trace_bit = 0x100ull;
1008  if (enable) {
1009 
1010  if (gpr.rflags & trace_bit)
1011  return true; // trace bit is already set, there is nothing to do
1012  else
1013  gpr.rflags |= trace_bit;
1014  } else {
1015  if (gpr.rflags & trace_bit)
1016  gpr.rflags &= ~trace_bit;
1017  else
1018  return true; // trace bit is clear, there is nothing to do
1019  }
1020 
1021  return WriteGPR() == 0;
1022 }
RegisterContextDarwin_x86_64::FPU::ftw
uint8_t ftw
Definition: RegisterContextDarwin_x86_64.h:84
fpu_dp
@ fpu_dp
Definition: RegisterContextDarwin_x86_64.cpp:58
RegisterContextDarwin_x86_64::FPU::mxcsrmask
uint32_t mxcsrmask
Definition: RegisterContextDarwin_x86_64.h:94
gpr_rdi
@ gpr_rdi
Definition: RegisterContextDarwin_x86_64.cpp:34
ehframe_dwarf_fpu_xmm6
@ ehframe_dwarf_fpu_xmm6
Definition: RegisterContextDarwin_x86_64.cpp:127
fpu_xmm12
@ fpu_xmm12
Definition: RegisterContextDarwin_x86_64.cpp:82
Scalar.h
k_num_registers
@ k_num_registers
Definition: RegisterContextDarwin_x86_64.cpp:91
r12
@ r12
Definition: CompactUnwindInfo.cpp:705
RegisterContextDarwin_x86_64::ReadGPR
int ReadGPR(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:517
fpu_xmm9
@ fpu_xmm9
Definition: RegisterContextDarwin_x86_64.cpp:79
fpu_ftw
@ fpu_ftw
Definition: RegisterContextDarwin_x86_64.cpp:54
RegisterContextDarwin_x86_64::DoWriteFPU
virtual int DoWriteFPU(lldb::tid_t tid, int flavor, const FPU &fpu)=0
ehframe_dwarf_fpu_xmm11
@ ehframe_dwarf_fpu_xmm11
Definition: RegisterContextDarwin_x86_64.cpp:132
rax
@ rax
Definition: CompactUnwindInfo.cpp:693
gpr_rax
@ gpr_rax
Definition: RegisterContextDarwin_x86_64.cpp:30
RegisterContextDarwin_x86_64::RegisterSetIsCached
bool RegisterSetIsCached(int set) const
Definition: RegisterContextDarwin_x86_64.h:171
g_fpu_regnums
static uint32_t g_fpu_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:469
LLDB_INVALID_REGNUM
#define LLDB_INVALID_REGNUM
Definition: lldb-defines.h:91
RegisterContextDarwin_x86_64::GetRegisterInfos
static const lldb_private::RegisterInfo * GetRegisterInfos()
Definition: RegisterContextDarwin_x86_64.cpp:460
ehframe_dwarf_gpr_r8
@ ehframe_dwarf_gpr_r8
Definition: RegisterContextDarwin_x86_64.cpp:112
fpu_xmm7
@ fpu_xmm7
Definition: RegisterContextDarwin_x86_64.cpp:77
lldb_private::RegisterValue::GetByteSize
uint32_t GetByteSize() const
Definition: RegisterValue.cpp:713
k_num_register_infos
static size_t k_num_register_infos
Definition: RegisterContextDarwin_x86_64.cpp:423
lldb_private::RegisterValue
Definition: RegisterValue.h:28
lldb::eRegisterKindDWARF
@ eRegisterKindDWARF
the register numbers seen DWARF
Definition: lldb-enumerations.h:229
RegisterContextDarwin_x86_64::fpu
FPU fpu
Definition: RegisterContextDarwin_x86_64.h:119
ehframe_dwarf_gpr_r14
@ ehframe_dwarf_gpr_r14
Definition: RegisterContextDarwin_x86_64.cpp:118
gpr_rsp
@ gpr_rsp
Definition: RegisterContextDarwin_x86_64.cpp:37
ehframe_dwarf_gpr_r11
@ ehframe_dwarf_gpr_r11
Definition: RegisterContextDarwin_x86_64.cpp:115
lldb::eRegisterKindGeneric
@ eRegisterKindGeneric
insn ptr reg, stack ptr reg, etc not specific to any particular target
Definition: lldb-enumerations.h:230
g_reg_sets
static const RegisterSet g_reg_sets[]
Definition: RegisterContextDarwin_x86_64.cpp:487
RegisterContextDarwin_x86_64::GPR::rax
uint64_t rax
Definition: RegisterContextDarwin_x86_64.h:48
ehframe_dwarf_fpu_xmm7
@ ehframe_dwarf_fpu_xmm7
Definition: RegisterContextDarwin_x86_64.cpp:128
fpu_stmm6
@ fpu_stmm6
Definition: RegisterContextDarwin_x86_64.cpp:68
fpu_ds
@ fpu_ds
Definition: RegisterContextDarwin_x86_64.cpp:59
r10
@ r10
Definition: CompactUnwindInfo.cpp:703
RegisterContextDarwin_x86_64::ReadRegisterSet
int ReadRegisterSet(uint32_t set, bool force)
Definition: RegisterContextDarwin_x86_64.cpp:574
fpu_ip
@ fpu_ip
Definition: RegisterContextDarwin_x86_64.cpp:56
RegisterContextDarwin_x86_64::XMMReg::bytes
uint8_t bytes[16]
Definition: RegisterContextDarwin_x86_64.h:77
fpu_stmm7
@ fpu_stmm7
Definition: RegisterContextDarwin_x86_64.cpp:69
RegisterContextDarwin_x86_64::HardwareSingleStep
bool HardwareSingleStep(bool enable) override
Definition: RegisterContextDarwin_x86_64.cpp:1003
k_num_regsets
const size_t k_num_regsets
Definition: RegisterContextDarwin_x86_64.cpp:494
fpu_xmm1
@ fpu_xmm1
Definition: RegisterContextDarwin_x86_64.cpp:71
gpr_rsi
@ gpr_rsi
Definition: RegisterContextDarwin_x86_64.cpp:35
gpr_rbx
@ gpr_rbx
Definition: RegisterContextDarwin_x86_64.cpp:31
ehframe_dwarf_gpr_r13
@ ehframe_dwarf_gpr_r13
Definition: RegisterContextDarwin_x86_64.cpp:117
DEFINE_FPU_UINT
#define DEFINE_FPU_UINT(reg)
Definition: RegisterContextDarwin_x86_64.cpp:165
REG_CONTEXT_SIZE
#define REG_CONTEXT_SIZE
Definition: RegisterContextDarwin_x86_64.cpp:180
ehframe_dwarf_gpr_r12
@ ehframe_dwarf_gpr_r12
Definition: RegisterContextDarwin_x86_64.cpp:116
gpr_r15
@ gpr_r15
Definition: RegisterContextDarwin_x86_64.cpp:45
gpr_rdx
@ gpr_rdx
Definition: RegisterContextDarwin_x86_64.cpp:33
RegisterContextDarwin_x86_64::FPU::mxcsr
uint32_t mxcsr
Definition: RegisterContextDarwin_x86_64.h:93
fpu_mxcsrmask
@ fpu_mxcsrmask
Definition: RegisterContextDarwin_x86_64.cpp:61
exc_trapno
@ exc_trapno
Definition: RegisterContextDarwin_x86_64.cpp:87
ehframe_dwarf_fpu_xmm1
@ ehframe_dwarf_fpu_xmm1
Definition: RegisterContextDarwin_x86_64.cpp:122
RegisterContextDarwin_x86_64::FPU::fcw
uint16_t fcw
Definition: RegisterContextDarwin_x86_64.h:82
RegisterValue.h
RegisterContextDarwin_x86_64::fpu_errs
int fpu_errs[2]
Definition: RegisterContextDarwin_x86_64.h:122
rdi
@ rdi
Definition: CompactUnwindInfo.cpp:698
fpu_stmm1
@ fpu_stmm1
Definition: RegisterContextDarwin_x86_64.cpp:63
ehframe_dwarf_fpu_stmm6
@ ehframe_dwarf_fpu_stmm6
Definition: RegisterContextDarwin_x86_64.cpp:143
fpu_ftag
@ fpu_ftag
Definition: RegisterContextDarwin_x86_64.cpp:96
RegisterContextDarwin_x86_64::EXC::trapno
uint32_t trapno
Definition: RegisterContextDarwin_x86_64.h:102
RegisterContextDarwin_x86_64::MMSReg::bytes
uint8_t bytes[10]
Definition: RegisterContextDarwin_x86_64.h:72
ehframe_dwarf_fpu_xmm13
@ ehframe_dwarf_fpu_xmm13
Definition: RegisterContextDarwin_x86_64.cpp:134
ehframe_dwarf_fpu_xmm3
@ ehframe_dwarf_fpu_xmm3
Definition: RegisterContextDarwin_x86_64.cpp:124
fpu_foseg
@ fpu_foseg
Definition: RegisterContextDarwin_x86_64.cpp:99
RegisterContextDarwin_x86_64::GetRegisterSetCount
size_t GetRegisterSetCount() override
Definition: RegisterContextDarwin_x86_64.cpp:496
lldb_private::RegisterValue::SetBytes
void SetBytes(const void *bytes, size_t length, lldb::ByteOrder byte_order)
Definition: RegisterValue.cpp:752
lldb_private::RegisterContext::GetThreadID
virtual lldb::tid_t GetThreadID() const
Definition: RegisterContext.cpp:256
ehframe_dwarf_fpu_xmm8
@ ehframe_dwarf_fpu_xmm8
Definition: RegisterContextDarwin_x86_64.cpp:129
ehframe_dwarf_fpu_xmm12
@ ehframe_dwarf_fpu_xmm12
Definition: RegisterContextDarwin_x86_64.cpp:133
lldb_private::RegisterValue::GetAsUInt64
uint64_t GetAsUInt64(uint64_t fail_value=UINT64_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:563
ehframe_dwarf_gpr_r15
@ ehframe_dwarf_gpr_r15
Definition: RegisterContextDarwin_x86_64.cpp:119
ehframe_dwarf_fpu_xmm2
@ ehframe_dwarf_fpu_xmm2
Definition: RegisterContextDarwin_x86_64.cpp:123
fpu_fop
@ fpu_fop
Definition: RegisterContextDarwin_x86_64.cpp:55
fpu_stmm4
@ fpu_stmm4
Definition: RegisterContextDarwin_x86_64.cpp:66
ehframe_dwarf_fpu_xmm9
@ ehframe_dwarf_fpu_xmm9
Definition: RegisterContextDarwin_x86_64.cpp:130
gpr_rcx
@ gpr_rcx
Definition: RegisterContextDarwin_x86_64.cpp:32
ehframe_dwarf_fpu_xmm10
@ ehframe_dwarf_fpu_xmm10
Definition: RegisterContextDarwin_x86_64.cpp:131
lldb::eRegisterKindEHFrame
@ eRegisterKindEHFrame
the register numbers seen in eh_frame
Definition: lldb-enumerations.h:228
ehframe_dwarf_gpr_rsp
@ ehframe_dwarf_gpr_rsp
Definition: RegisterContextDarwin_x86_64.cpp:111
LLDB_REGNUM_GENERIC_FLAGS
#define LLDB_REGNUM_GENERIC_FLAGS
Definition: lldb-defines.h:67
RegisterContextDarwin_x86_64::DoWriteGPR
virtual int DoWriteGPR(lldb::tid_t tid, int flavor, const GPR &gpr)=0
fpu_stmm0
@ fpu_stmm0
Definition: RegisterContextDarwin_x86_64.cpp:62
fpu_xmm4
@ fpu_xmm4
Definition: RegisterContextDarwin_x86_64.cpp:74
r8
@ r8
Definition: CompactUnwindInfo.cpp:701
RegisterContextDarwin_x86_64::FPU::stmm
MMSReg stmm[8]
Definition: RegisterContextDarwin_x86_64.h:95
RegisterContextDarwin_x86_64::WriteAllRegisterValues
bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override
Definition: RegisterContextDarwin_x86_64.cpp:871
rcx
@ rcx
Definition: CompactUnwindInfo.cpp:695
fpu_xmm3
@ fpu_xmm3
Definition: RegisterContextDarwin_x86_64.cpp:73
lldb::eRegisterKindLLDB
@ eRegisterKindLLDB
lldb's internal register numbers
Definition: lldb-enumerations.h:234
RegisterContextDarwin_x86_64::GetRegisterInfoAtIndex
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
Definition: RegisterContextDarwin_x86_64.cpp:448
fpu_xmm6
@ fpu_xmm6
Definition: RegisterContextDarwin_x86_64.cpp:76
RegisterContextDarwin_x86_64::FPU::dp
uint32_t dp
Definition: RegisterContextDarwin_x86_64.h:90
gpr_r13
@ gpr_r13
Definition: RegisterContextDarwin_x86_64.cpp:43
Log.h
DEFINE_GPR
#define DEFINE_GPR(reg, alt)
Definition: RegisterContextDarwin_x86_64.cpp:162
fpu_xmm15
@ fpu_xmm15
Definition: RegisterContextDarwin_x86_64.cpp:85
ehframe_dwarf_gpr_rdx
@ ehframe_dwarf_gpr_rdx
Definition: RegisterContextDarwin_x86_64.cpp:105
lldb_private::Thread
Definition: Thread.h:60
RegisterContextDarwin_x86_64::exc_errs
int exc_errs[2]
Definition: RegisterContextDarwin_x86_64.h:123
lldb_private::RegisterValue::GetBytes
const void * GetBytes() const
Definition: RegisterValue.cpp:693
RegisterContextDarwin_x86_64::DoReadFPU
virtual int DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu)=0
DEFINE_EXC
#define DEFINE_EXC(reg)
Definition: RegisterContextDarwin_x86_64.cpp:176
RegisterContextDarwin_x86_64::EXC::err
uint32_t err
Definition: RegisterContextDarwin_x86_64.h:103
ehframe_dwarf_gpr_rdi
@ ehframe_dwarf_gpr_rdi
Definition: RegisterContextDarwin_x86_64.cpp:109
lldb_private::RegisterValue::GetAsUInt16
uint16_t GetAsUInt16(uint16_t fail_value=UINT16_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:507
rbx
@ rbx
Definition: CompactUnwindInfo.cpp:696
ehframe_dwarf_fpu_xmm14
@ ehframe_dwarf_fpu_xmm14
Definition: RegisterContextDarwin_x86_64.cpp:135
r11
@ r11
Definition: CompactUnwindInfo.cpp:704
r14
@ r14
Definition: CompactUnwindInfo.cpp:707
RegisterContextDarwin_x86_64::GetRegisterCount
size_t GetRegisterCount() override
Definition: RegisterContextDarwin_x86_64.cpp:442
gpr_gs
@ gpr_gs
Definition: RegisterContextDarwin_x86_64.cpp:50
lldb_private::RegisterValue::GetAsUInt8
uint8_t GetAsUInt8(uint8_t fail_value=UINT8_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.h:108
ehframe_dwarf_fpu_stmm1
@ ehframe_dwarf_fpu_stmm1
Definition: RegisterContextDarwin_x86_64.cpp:138
ehframe_dwarf_gpr_r9
@ ehframe_dwarf_gpr_r9
Definition: RegisterContextDarwin_x86_64.cpp:113
g_register_infos
static RegisterInfo g_register_infos[]
Definition: RegisterContextDarwin_x86_64.cpp:186
gpr_r14
@ gpr_r14
Definition: RegisterContextDarwin_x86_64.cpp:44
k_num_gpr_registers
const size_t k_num_gpr_registers
Definition: RegisterContextDarwin_x86_64.cpp:480
RegisterContextDarwin_x86_64::GPRRegSet
@ GPRRegSet
Definition: RegisterContextDarwin_x86_64.h:108
RegisterContextDarwin_x86_64::ReadEXC
int ReadEXC(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:533
RegisterContextDarwin_x86_64::GetSetForNativeRegNum
static int GetSetForNativeRegNum(int reg_num)
Definition: RegisterContextDarwin_x86_64.cpp:507
ehframe_dwarf_fpu_stmm4
@ ehframe_dwarf_fpu_stmm4
Definition: RegisterContextDarwin_x86_64.cpp:141
RegisterContextDarwin_x86_64::WriteRegisterSet
int WriteRegisterSet(uint32_t set)
Definition: RegisterContextDarwin_x86_64.cpp:588
RegisterContextDarwin_x86_64::FPU::xmm
XMMReg xmm[16]
Definition: RegisterContextDarwin_x86_64.h:96
set
set(option_framework FRAMEWORK) endif() if(LLDB_ENABLE_PYTHON) get_target_property(python_bindings_dir swig_wrapper_python BINARY_DIR) set(lldb_python_wrapper $
Definition: API/CMakeLists.txt:9
ehframe_dwarf_gpr_rax
@ ehframe_dwarf_gpr_rax
Definition: RegisterContextDarwin_x86_64.cpp:104
gpr_rip
@ gpr_rip
Definition: RegisterContextDarwin_x86_64.cpp:46
fpu_xmm5
@ fpu_xmm5
Definition: RegisterContextDarwin_x86_64.cpp:75
ehframe_dwarf_gpr_rbp
@ ehframe_dwarf_gpr_rbp
Definition: RegisterContextDarwin_x86_64.cpp:110
g_exc_regnums
static uint32_t g_exc_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:477
gpr_r8
@ gpr_r8
Definition: RegisterContextDarwin_x86_64.cpp:38
fpu_fooff
@ fpu_fooff
Definition: RegisterContextDarwin_x86_64.cpp:100
lldb_private::RegisterContext
Definition: RegisterContext.h:17
fpu_fsw
@ fpu_fsw
Definition: RegisterContextDarwin_x86_64.cpp:53
fpu_xmm14
@ fpu_xmm14
Definition: RegisterContextDarwin_x86_64.cpp:84
fpu_fioff
@ fpu_fioff
Definition: RegisterContextDarwin_x86_64.cpp:98
lldb::RegisterKind
RegisterKind
Register numbering types.
Definition: lldb-enumerations.h:227
ehframe_dwarf_gpr_rbx
@ ehframe_dwarf_gpr_rbx
Definition: RegisterContextDarwin_x86_64.cpp:107
ehframe_dwarf_fpu_xmm0
@ ehframe_dwarf_fpu_xmm0
Definition: RegisterContextDarwin_x86_64.cpp:121
RegisterContextDarwin_x86_64::EXC::faultvaddr
uint64_t faultvaddr
Definition: RegisterContextDarwin_x86_64.h:104
RegisterContextDarwin_x86_64::ReadRegister
bool ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value) override
Definition: RegisterContextDarwin_x86_64.cpp:603
RegisterContextDarwin_x86_64::DoReadEXC
virtual int DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc)=0
RegisterContextDarwin_x86_64::FPU::ds
uint16_t ds
Definition: RegisterContextDarwin_x86_64.h:91
gpr_r11
@ gpr_r11
Definition: RegisterContextDarwin_x86_64.cpp:41
ehframe_dwarf_fpu_stmm5
@ ehframe_dwarf_fpu_stmm5
Definition: RegisterContextDarwin_x86_64.cpp:142
RegisterContextDarwin_x86_64::InvalidateAllRegisterStates
void InvalidateAllRegisterStates()
Definition: RegisterContextDarwin_x86_64.h:125
gpr_rflags
@ gpr_rflags
Definition: RegisterContextDarwin_x86_64.cpp:47
RegisterContextDarwin_x86_64::~RegisterContextDarwin_x86_64
~RegisterContextDarwin_x86_64() override
ehframe_dwarf_fpu_stmm7
@ ehframe_dwarf_fpu_stmm7
Definition: RegisterContextDarwin_x86_64.cpp:144
ehframe_dwarf_fpu_stmm0
@ ehframe_dwarf_fpu_stmm0
Definition: RegisterContextDarwin_x86_64.cpp:137
rdx
@ rdx
Definition: CompactUnwindInfo.cpp:694
RegisterContextDarwin_x86_64::ConvertRegisterKindToRegisterNumber
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
Definition: RegisterContextDarwin_x86_64.cpp:894
ehframe_dwarf_gpr_r10
@ ehframe_dwarf_gpr_r10
Definition: RegisterContextDarwin_x86_64.cpp:114
g_gpr_regnums
static uint32_t g_gpr_regnums[]
Definition: RegisterContextDarwin_x86_64.cpp:464
RegisterContextDarwin_x86_64::ReadAllRegisterValues
bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override
Definition: RegisterContextDarwin_x86_64.cpp:854
RegisterContextDarwin_x86_64::WriteEXC
int WriteEXC()
Definition: RegisterContextDarwin_x86_64.cpp:563
RegisterContextDarwin_x86_64::kNumErrors
@ kNumErrors
Definition: RegisterContextDarwin_x86_64.h:116
uint32_t
RegisterContextDarwin_x86_64::FPU::cs
uint16_t cs
Definition: RegisterContextDarwin_x86_64.h:88
RegisterContextDarwin_x86_64::gpr_errs
int gpr_errs[2]
Definition: RegisterContextDarwin_x86_64.h:121
LLDB_REGNUM_GENERIC_SP
#define LLDB_REGNUM_GENERIC_SP
Definition: lldb-defines.h:64
fpu_fiseg
@ fpu_fiseg
Definition: RegisterContextDarwin_x86_64.cpp:97
lldb_private::endian::InlHostByteOrder
lldb::ByteOrder InlHostByteOrder()
Definition: Endian.h:25
ehframe_dwarf_fpu_xmm5
@ ehframe_dwarf_fpu_xmm5
Definition: RegisterContextDarwin_x86_64.cpp:126
fpu_stmm2
@ fpu_stmm2
Definition: RegisterContextDarwin_x86_64.cpp:64
RegisterContextDarwin_x86_64::FPU::fsw
uint16_t fsw
Definition: RegisterContextDarwin_x86_64.h:83
RegisterContextDarwin_x86_64::ReadFPU
int ReadFPU(bool force)
Definition: RegisterContextDarwin_x86_64.cpp:525
fpu_fstat
@ fpu_fstat
Definition: RegisterContextDarwin_x86_64.cpp:95
fpu_fcw
@ fpu_fcw
Definition: RegisterContextDarwin_x86_64.cpp:52
RegisterContextDarwin_x86_64::FPU::ip
uint32_t ip
Definition: RegisterContextDarwin_x86_64.h:87
gpr_cs
@ gpr_cs
Definition: RegisterContextDarwin_x86_64.cpp:48
fpu_mxcsr
@ fpu_mxcsr
Definition: RegisterContextDarwin_x86_64.cpp:60
RegisterContextDarwin_x86_64::RegisterContextDarwin_x86_64
RegisterContextDarwin_x86_64(lldb_private::Thread &thread, uint32_t concrete_frame_idx)
Definition: RegisterContextDarwin_x86_64.cpp:425
rip
@ rip
Definition: CompactUnwindInfo.cpp:709
ehframe_dwarf_regnums
ehframe_dwarf_regnums
Definition: RegisterContextDarwin_x86_64.cpp:103
fpu_stmm5
@ fpu_stmm5
Definition: RegisterContextDarwin_x86_64.cpp:67
RegisterContextDarwin_x86_64::Write
@ Write
Definition: RegisterContextDarwin_x86_64.h:116
fpu_xmm11
@ fpu_xmm11
Definition: RegisterContextDarwin_x86_64.cpp:81
DataExtractor.h
ehframe_dwarf_fpu_stmm2
@ ehframe_dwarf_fpu_stmm2
Definition: RegisterContextDarwin_x86_64.cpp:139
k_num_fpu_registers
const size_t k_num_fpu_registers
Definition: RegisterContextDarwin_x86_64.cpp:481
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
ehframe_dwarf_fpu_stmm3
@ ehframe_dwarf_fpu_stmm3
Definition: RegisterContextDarwin_x86_64.cpp:140
fpu_xmm13
@ fpu_xmm13
Definition: RegisterContextDarwin_x86_64.cpp:83
LLDB_REGNUM_GENERIC_FP
#define LLDB_REGNUM_GENERIC_FP
Definition: lldb-defines.h:65
RegisterContextDarwin_x86_64.h
RegisterContextDarwin_x86_64::SetError
bool SetError(int flavor, uint32_t err_idx, int err)
Definition: RegisterContextDarwin_x86_64.h:149
r15
@ r15
Definition: CompactUnwindInfo.cpp:708
RegisterContextDarwin_x86_64::GetRegisterSet
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
Definition: RegisterContextDarwin_x86_64.cpp:501
RegisterContextDarwin_x86_64::DoReadGPR
virtual int DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr)=0
exc_err
@ exc_err
Definition: RegisterContextDarwin_x86_64.cpp:88
LLDB_REGNUM_GENERIC_PC
#define LLDB_REGNUM_GENERIC_PC
Definition: lldb-defines.h:63
ehframe_dwarf_fpu_xmm4
@ ehframe_dwarf_fpu_xmm4
Definition: RegisterContextDarwin_x86_64.cpp:125
fpu_xmm2
@ fpu_xmm2
Definition: RegisterContextDarwin_x86_64.cpp:72
RegisterContextDarwin_x86_64::exc
EXC exc
Definition: RegisterContextDarwin_x86_64.h:120
fpu_xmm0
@ fpu_xmm0
Definition: RegisterContextDarwin_x86_64.cpp:70
gpr_fs
@ gpr_fs
Definition: RegisterContextDarwin_x86_64.cpp:49
RegisterContextDarwin_x86_64::Read
@ Read
Definition: RegisterContextDarwin_x86_64.h:116
gpr_rbp
@ gpr_rbp
Definition: RegisterContextDarwin_x86_64.cpp:36
exc_faultvaddr
@ exc_faultvaddr
Definition: RegisterContextDarwin_x86_64.cpp:89
RegisterContextDarwin_x86_64::FPU::fop
uint16_t fop
Definition: RegisterContextDarwin_x86_64.h:86
fpu_xmm8
@ fpu_xmm8
Definition: RegisterContextDarwin_x86_64.cpp:78
ehframe_dwarf_gpr_rip
@ ehframe_dwarf_gpr_rip
Definition: RegisterContextDarwin_x86_64.cpp:120
RegisterContextDarwin_x86_64::EXCRegSet
@ EXCRegSet
Definition: RegisterContextDarwin_x86_64.h:108
RegisterContextDarwin_x86_64::WriteFPU
int WriteFPU()
Definition: RegisterContextDarwin_x86_64.cpp:552
RegisterContextDarwin_x86_64::DoWriteEXC
virtual int DoWriteEXC(lldb::tid_t tid, int flavor, const EXC &exc)=0
ehframe_dwarf_fpu_xmm15
@ ehframe_dwarf_fpu_xmm15
Definition: RegisterContextDarwin_x86_64.cpp:136
RegisterContextDarwin_x86_64::GetRegisterInfosCount
static size_t GetRegisterInfosCount()
Definition: RegisterContextDarwin_x86_64.cpp:455
gpr_r12
@ gpr_r12
Definition: RegisterContextDarwin_x86_64.cpp:42
rsi
@ rsi
Definition: CompactUnwindInfo.cpp:697
gpr_r9
@ gpr_r9
Definition: RegisterContextDarwin_x86_64.cpp:39
RegisterContextDarwin_x86_64::FPURegSet
@ FPURegSet
Definition: RegisterContextDarwin_x86_64.h:108
k_num_exc_registers
const size_t k_num_exc_registers
Definition: RegisterContextDarwin_x86_64.cpp:482
RegisterContextDarwin_x86_64::InvalidateAllRegisters
void InvalidateAllRegisters() override
Definition: RegisterContextDarwin_x86_64.cpp:438
lldb_private::RegisterValue::GetAsUInt32
uint32_t GetAsUInt32(uint32_t fail_value=UINT32_MAX, bool *success_ptr=nullptr) const
Definition: RegisterValue.cpp:533
r9
@ r9
Definition: CompactUnwindInfo.cpp:702
lldb
Definition: SBAddress.h:15
fpu_fctrl
@ fpu_fctrl
Definition: RegisterContextDarwin_x86_64.cpp:94
RegisterContextDarwin_x86_64::gpr
GPR gpr
Definition: RegisterContextDarwin_x86_64.h:118
Endian.h
fpu_xmm10
@ fpu_xmm10
Definition: RegisterContextDarwin_x86_64.cpp:80
RegisterContextDarwin_x86_64::WriteGPR
int WriteGPR()
Definition: RegisterContextDarwin_x86_64.cpp:541
rbp
@ rbp
Definition: CompactUnwindInfo.cpp:699
ehframe_dwarf_gpr_rsi
@ ehframe_dwarf_gpr_rsi
Definition: RegisterContextDarwin_x86_64.cpp:108
DataBufferHeap.h
RegisterContextDarwin_x86_64::GetError
int GetError(int flavor, uint32_t err_idx) const
Definition: RegisterContextDarwin_x86_64.h:131
RegisterContextDarwin_x86_64::WriteRegister
bool WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value) override
Definition: RegisterContextDarwin_x86_64.cpp:728
fpu_cs
@ fpu_cs
Definition: RegisterContextDarwin_x86_64.cpp:57
RegisterContextDarwin_x86_64::GPR::rflags
uint64_t rflags
Definition: RegisterContextDarwin_x86_64.h:65
fpu_stmm3
@ fpu_stmm3
Definition: RegisterContextDarwin_x86_64.cpp:65
ehframe_dwarf_gpr_rcx
@ ehframe_dwarf_gpr_rcx
Definition: RegisterContextDarwin_x86_64.cpp:106
rsp
@ rsp
Definition: CompactUnwindInfo.cpp:700
gpr_r10
@ gpr_r10
Definition: RegisterContextDarwin_x86_64.cpp:40
r13
@ r13
Definition: CompactUnwindInfo.cpp:706
LLDB_REGNUM_GENERIC_RA
#define LLDB_REGNUM_GENERIC_RA
Definition: lldb-defines.h:66
DEFINE_FPU_VECT
#define DEFINE_FPU_VECT(reg, i)
Definition: RegisterContextDarwin_x86_64.cpp:168