@@ -1208,80 +1208,6 @@ impl AsanRuntime {
12081208 }
12091209 }
12101210 }
1211- AsanError :: Unknown ( ( registers, pc, fault, backtrace) ) => {
1212- let ( basereg, indexreg, _displacement, fault_address) = fault;
1213-
1214- if let Ok ( ( start, _, _, path) ) = find_mapping_for_address ( pc) {
1215- writeln ! (
1216- output,
1217- " at 0x{:x} ({}:0x{:04x}), faulting address 0x{:x}" ,
1218- pc,
1219- path,
1220- pc - start,
1221- fault_address
1222- )
1223- . unwrap ( ) ;
1224- } else {
1225- writeln ! (
1226- output,
1227- " at 0x{:x}, faulting address 0x{:x}" ,
1228- pc, fault_address
1229- )
1230- . unwrap ( ) ;
1231- }
1232- output. reset ( ) . unwrap ( ) ;
1233-
1234- #[ allow( clippy:: non_ascii_literal) ]
1235- writeln ! ( output, "{:━^100}" , " REGISTERS " ) . unwrap ( ) ;
1236- for reg in 0 ..=30 {
1237- if reg == basereg {
1238- output
1239- . set_color ( ColorSpec :: new ( ) . set_fg ( Some ( Color :: Red ) ) )
1240- . unwrap ( ) ;
1241- } else if reg == indexreg {
1242- output
1243- . set_color ( ColorSpec :: new ( ) . set_fg ( Some ( Color :: Yellow ) ) )
1244- . unwrap ( ) ;
1245- }
1246- write ! ( output, "x{:02}: 0x{:016x} " , reg, registers[ reg as usize ] ) . unwrap ( ) ;
1247- output. reset ( ) . unwrap ( ) ;
1248- if reg % 4 == 3 {
1249- writeln ! ( output) . unwrap ( ) ;
1250- }
1251- }
1252- writeln ! ( output, "pc : 0x{:016x} " , pc) . unwrap ( ) ;
1253-
1254- #[ allow( clippy:: non_ascii_literal) ]
1255- writeln ! ( output, "{:━^100}" , " CODE " ) . unwrap ( ) ;
1256- let mut cs = Capstone :: new ( )
1257- . arm64 ( )
1258- . mode ( capstone:: arch:: arm64:: ArchMode :: Arm )
1259- . build ( )
1260- . unwrap ( ) ;
1261- cs. set_skipdata ( true ) . expect ( "failed to set skipdata" ) ;
1262-
1263- let start_pc = pc - 4 * 5 ;
1264- for insn in cs
1265- . disasm_count (
1266- unsafe { std:: slice:: from_raw_parts ( start_pc as * mut u8 , 4 * 11 ) } ,
1267- start_pc as u64 ,
1268- 11 ,
1269- )
1270- . expect ( "failed to disassemble instructions" )
1271- . iter ( )
1272- {
1273- if insn. address ( ) as usize == pc {
1274- output
1275- . set_color ( ColorSpec :: new ( ) . set_fg ( Some ( Color :: Red ) ) )
1276- . unwrap ( ) ;
1277- writeln ! ( output, "\t => {}" , insn) . unwrap ( ) ;
1278- output. reset ( ) . unwrap ( ) ;
1279- } else {
1280- writeln ! ( output, "\t {}" , insn) . unwrap ( ) ;
1281- }
1282- }
1283- backtrace_printer. print_trace ( & backtrace, output) . unwrap ( ) ;
1284- }
12851211 AsanError :: DoubleFree ( ( ptr, mut metadata, backtrace) ) => {
12861212 writeln ! ( output, " of {:?}" , ptr) . unwrap ( ) ;
12871213 output. reset ( ) . unwrap ( ) ;
@@ -1339,7 +1265,8 @@ impl AsanRuntime {
13391265 backtrace_printer. print_trace ( backtrace, output) . unwrap ( ) ;
13401266 }
13411267 }
1342- AsanError :: StackOobRead ( ( registers, pc, fault, backtrace) )
1268+ AsanError :: Unknown ( ( registers, pc, fault, backtrace) )
1269+ | AsanError :: StackOobRead ( ( registers, pc, fault, backtrace) )
13431270 | AsanError :: StackOobWrite ( ( registers, pc, fault, backtrace) ) => {
13441271 let ( basereg, indexreg, _displacement, fault_address) = fault;
13451272
0 commit comments