Skip to content

Commit f4826ab

Browse files
committed
Fix backtraces on Windows
1 parent 6efaef6 commit f4826ab

File tree

1 file changed

+10
-1
lines changed
  • src/libstd/sys/windows/backtrace

1 file changed

+10
-1
lines changed

src/libstd/sys/windows/backtrace/mod.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ fn set_frames<W: StackWalker>(StackWalk: W, frames: &mut [Frame]) -> io::Result<
103103
frames[i] = Frame {
104104
symbol_addr: addr,
105105
exact_position: addr,
106-
inline_context: 0,
106+
inline_context: frame.get_inline_context(),
107107
};
108108

109109
i += 1
@@ -209,6 +209,7 @@ trait StackFrame {
209209
fn new() -> Self;
210210
fn init(&mut self, ctx: &c::CONTEXT) -> c::DWORD;
211211
fn get_addr(&self) -> *const u8;
212+
fn get_inline_context(&self) -> u32;
212213
}
213214

214215
impl StackFrame for c::STACKFRAME_EX {
@@ -263,6 +264,10 @@ impl StackFrame for c::STACKFRAME_EX {
263264
fn get_addr(&self) -> *const u8 {
264265
(self.AddrPC.Offset - 1) as *const u8
265266
}
267+
268+
fn get_inline_context(&self) -> u32 {
269+
self.InlineFrameContext
270+
}
266271
}
267272

268273
impl StackFrame for c::STACKFRAME64 {
@@ -317,6 +322,10 @@ impl StackFrame for c::STACKFRAME64 {
317322
fn get_addr(&self) -> *const u8 {
318323
(self.AddrPC.Offset - 1) as *const u8
319324
}
325+
326+
fn get_inline_context(&self) -> u32 {
327+
0
328+
}
320329
}
321330

322331
enum StackWalkVariant {

0 commit comments

Comments
 (0)