[PATCH v5 3/4] ntdll: Also capture first frame in back trace on x86.

Paul Gofman pgofman at codeweavers.com
Wed Nov 3 05:41:26 CDT 2021


Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
 dlls/ntdll/signal_i386.c     | 5 +----
 dlls/ntdll/tests/exception.c | 2 --
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index ff3e837c784..b28684839b7 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -490,9 +490,6 @@ ULONG WINAPI capture_stack_back_trace( ULONG skip, ULONG count, PVOID *buffer, U
     ULONG *frame;
     ULONG num_entries = 0;
 
-    ++skip;
-    ++count;
-
     RtlCaptureContext( &context );
     if (hash) *hash = 0;
     frame = (ULONG *)context.Ebp;
@@ -507,7 +504,7 @@ ULONG WINAPI capture_stack_back_trace( ULONG skip, ULONG count, PVOID *buffer, U
         }
         frame = (ULONG *)*frame;
     }
-    return i ? i - 1 : 0;
+    return i;
 }
 
 
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 6f3b08b5ea6..6e57c94703c 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -9134,10 +9134,8 @@ static void test_walk_stack(void)
 
     start = test_walk_stack;
     end = (BYTE *)start + 0x1000;
-    todo_wine_if(sizeof(void *) == 4)
     ok(addrs[0] >= start && addrs[0] < end, "Address is not inside test function, start %p, end %p, addr %p.\n",
             start, end, addrs[0]);
-    todo_wine_if(sizeof(void *) == 4)
     ok(addrs2[0] >= start && addrs2[0] < end, "Address is not inside test function, start %p, end %p, addr %p.\n",
             start, end, addrs2[0]);
 
-- 
2.31.1




More information about the wine-devel mailing list