Merge "Add tomstone proto support for riscv64"

This commit is contained in:
Elliott Hughes 2022-10-14 21:58:57 +00:00 committed by Gerrit Code Review
commit cfd803d5f5
3 changed files with 12 additions and 1 deletions

View file

@ -82,6 +82,8 @@ static Architecture get_arch() {
return Architecture::X86;
#elif defined(__x86_64__)
return Architecture::X86_64;
#elif defined(__riscv) && (__riscv_xlen == 64)
return Architecture::RISCV64;
#else
#error Unknown architecture!
#endif

View file

@ -47,6 +47,8 @@ static const char* abi_string(const Tombstone& tombstone) {
return "arm";
case Architecture::ARM64:
return "arm64";
case Architecture::RISCV64:
return "riscv64";
case Architecture::X86:
return "x86";
case Architecture::X86_64:
@ -62,6 +64,8 @@ static int pointer_width(const Tombstone& tombstone) {
return 4;
case Architecture::ARM64:
return 8;
case Architecture::RISCV64:
return 8;
case Architecture::X86:
return 4;
case Architecture::X86_64:
@ -119,6 +123,10 @@ static void print_thread_registers(CallbackType callback, const Tombstone& tombs
special_registers = {"ip", "lr", "sp", "pc", "pst"};
break;
case Architecture::RISCV64:
special_registers = {"ra", "sp", "pc"};
break;
case Architecture::X86:
special_registers = {"ebp", "esp", "eip"};
break;

View file

@ -48,8 +48,9 @@ enum Architecture {
ARM64 = 1;
X86 = 2;
X86_64 = 3;
RISCV64 = 4;
reserved 4 to 999;
reserved 5 to 999;
}
message Signal {