Skip to content

Commit cd0e4cd

Browse files
committed
Use destructuring for format strings
1 parent 89bba38 commit cd0e4cd

File tree

1 file changed

+88
-67
lines changed

1 file changed

+88
-67
lines changed

crates/uv/src/windows_exception.rs

Lines changed: 88 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -125,91 +125,112 @@ fn display_exception_info(
125125

126126
#[cfg(target_arch = "x86")]
127127
fn dump_regs(e: &mut ExceptionSafeStderr, c: &CONTEXT) -> std::fmt::Result {
128+
let CONTEXT {
129+
Eax,
130+
Ebx,
131+
Ecx,
132+
Edx,
133+
Esi,
134+
Edi,
135+
Eip,
136+
Ebp,
137+
Esp,
138+
EFlags,
139+
..
140+
} = c;
128141
writeln!(
129142
e,
130-
"eax={:08x} ebx={:08x} ecx={:08x} edx={:08x} esi={:08x} edi={:08x}",
131-
c.Eax, c.Ebx, c.Ecx, c.Edx, c.Esi, c.Edi
143+
"eax={Eax:08x} ebx={Ebx:08x} ecx={Ecx:08x} edx={Edx:08x} esi={Esi:08x} edi={Edi:08x}"
132144
)?;
133145
writeln!(
134146
e,
135-
"eip={:08x} ebp={:08x} esp={:08x} eflags={:08x}",
136-
c.Eip, c.Ebp, c.Esp, c.EFlags
147+
"eip={Eip:08x} ebp={Ebp:08x} esp={Esp:08x} eflags={EFlags:08x}"
137148
)?;
138149
Ok(())
139150
}
140151

141152
#[cfg(target_arch = "x86_64")]
142153
fn dump_regs(e: &mut ExceptionSafeStderr, c: &CONTEXT) -> std::fmt::Result {
143-
writeln!(
144-
e,
145-
"rax={:016x} rbx={:016x} rcx={:016x}",
146-
c.Rax, c.Rbx, c.Rcx
147-
)?;
148-
writeln!(
149-
e,
150-
"rdx={:016x} rsi={:016x} rdi={:016x}",
151-
c.Rdx, c.Rsi, c.Rdi
152-
)?;
153-
writeln!(e, "rsp={:016x} rbp={:016x} r8={:016x}", c.Rsp, c.Rbp, c.R8)?;
154-
writeln!(e, " r9={:016x} r10={:016x} r11={:016x}", c.R9, c.R10, c.R11)?;
155-
writeln!(
156-
e,
157-
"r12={:016x} r13={:016x} r14={:016x}",
158-
c.R12, c.R13, c.R14
159-
)?;
160-
writeln!(
161-
e,
162-
"r15={:016x} rip={:016x} eflags={:016x}",
163-
c.R15, c.Rip, c.EFlags
164-
)?;
154+
let CONTEXT {
155+
Rax,
156+
Rbx,
157+
Rcx,
158+
Rdx,
159+
Rsi,
160+
Rdi,
161+
Rsp,
162+
Rbp,
163+
R8,
164+
R9,
165+
R10,
166+
R11,
167+
R12,
168+
R13,
169+
R14,
170+
R15,
171+
Rip,
172+
EFlags,
173+
..
174+
} = c;
175+
writeln!(e, "rax={Rax:016x} rbx={Rbx:016x} rcx={Rcx:016x}")?;
176+
writeln!(e, "rdx={Rdx:016x} rsi={Rsi:016x} rdi={Rdi:016x}")?;
177+
writeln!(e, "rsp={Rsp:016x} rbp={Rbp:016x} r8={R8 :016x}")?;
178+
writeln!(e, " r9={R9 :016x} r10={R10:016x} r11={R11:016x}")?;
179+
writeln!(e, "r12={R12:016x} r13={R13:016x} r14={R14:016x}")?;
180+
writeln!(e, "r15={R15:016x} rip={Rip:016x} eflags={EFlags:016x}")?;
165181
Ok(())
166182
}
167183

168184
#[cfg(target_arch = "aarch64")]
169185
fn dump_regs(e: &mut ExceptionSafeStderr, c: &CONTEXT) -> std::fmt::Result {
186+
let CONTEXT { Cpsr, Sp, Pc, .. } = c;
170187
// SAFETY: The two variants of this anonymous union are equivalent,
171188
// one's an array and one has named registers.
172-
let r = unsafe { c.Anonymous.Anonymous };
173-
writeln!(
174-
e,
175-
"cpsr={:016x} sp={:016x} pc={:016x}",
176-
c.Cpsr, c.Sp, c.Pc
177-
)?;
178-
writeln!(e, " x0={:016x} x1={:016x} x2={:016x}", r.X0, r.X1, r.X2)?;
179-
writeln!(e, " x3={:016x} x4={:016x} x5={:016x}", r.X3, r.X4, r.X5)?;
180-
writeln!(e, " x6={:016x} x7={:016x} x8={:016x}", r.X6, r.X7, r.X8)?;
181-
writeln!(
182-
e,
183-
" x9={:016x} x10={:016x} x11={:016x}",
184-
r.X9, r.X10, r.X11
185-
)?;
186-
writeln!(
187-
e,
188-
" x12={:016x} x13={:016x} x14={:016x}",
189-
r.X12, r.X13, r.X14
190-
)?;
191-
writeln!(
192-
e,
193-
" x15={:016x} x16={:016x} x17={:016x}",
194-
r.X15, r.X16, r.X17
195-
)?;
196-
writeln!(
197-
e,
198-
" x18={:016x} x19={:016x} x20={:016x}",
199-
r.X18, r.X19, r.X20
200-
)?;
201-
writeln!(
202-
e,
203-
" x21={:016x} x22={:016x} x23={:016x}",
204-
r.X21, r.X22, r.X23
205-
)?;
206-
writeln!(
207-
e,
208-
" x24={:016x} x25={:016x} x26={:016x}",
209-
r.X24, r.X25, r.X26
210-
)?;
211-
writeln!(e, " x27={:016x} x28={:016x}", r.X27, r.X28)?;
212-
writeln!(e, " fp={:016x} lr={:016x}", r.Fp, r.Lr)?;
189+
let regs = unsafe { c.Anonymous.Anonymous };
190+
let Windows::Win32::System::Diagnostics::Debug::CONTEXT_0_0 {
191+
X0,
192+
X1,
193+
X2,
194+
X3,
195+
X4,
196+
X5,
197+
X6,
198+
X7,
199+
X8,
200+
X9,
201+
X10,
202+
X11,
203+
X12,
204+
X13,
205+
X14,
206+
X15,
207+
X16,
208+
X17,
209+
X18,
210+
X19,
211+
X20,
212+
X21,
213+
X22,
214+
X23,
215+
X24,
216+
X25,
217+
X26,
218+
X27,
219+
X28,
220+
Fp,
221+
Lr,
222+
} = regs;
223+
writeln!(e, "cpsr={Cpsr:016x} sp={Sp :016x} pc={Pc :016x}")?;
224+
writeln!(e, " x0={X0 :016x} x1={X1 :016x} x2={X2 :016x}")?;
225+
writeln!(e, " x3={X3 :016x} x4={X4 :016x} x5={X5 :016x}")?;
226+
writeln!(e, " x6={X6 :016x} x7={X7 :016x} x8={X8 :016x}")?;
227+
writeln!(e, " x9={X9 :016x} x10={X10:016x} x11={X11:016x}")?;
228+
writeln!(e, " x12={X12 :016x} x13={X13:016x} x14={X14:016x}")?;
229+
writeln!(e, " x15={X15 :016x} x16={X16:016x} x17={X17:016x}")?;
230+
writeln!(e, " x18={X18 :016x} x19={X19:016x} x20={X20:016x}")?;
231+
writeln!(e, " x21={X21 :016x} x22={X22:016x} x23={X23:016x}")?;
232+
writeln!(e, " x24={X24 :016x} x25={X25:016x} x26={X26:016x}")?;
233+
writeln!(e, " fp={Fp :016x} lr={Lr :016x}")?;
213234
Ok(())
214235
}
215236

0 commit comments

Comments
 (0)