alvinhochun added inline comments.
================ Comment at: lldb/test/Shell/Process/Windows/wndproc_exception.cpp:7 +// RUN: %clangxx_host -o %t.exe -luser32 -v -- %s +// RUN: %lldb -f %t.exe -o "run" + ---------------- alvinhochun wrote: > mstorsjo wrote: > > mstorsjo wrote: > > > labath wrote: > > > > Is there something reasonable we could assert here? The process exit > > > > status for instance? > > > This in itself requires the `%lldb` command to succeed - the exit status > > > for each `RUN` line needs to be successful (unless a failure is expected > > > and it can be inverted with the `not` command). Or did you mean checking > > > the process exit code of the child process (that intentionally does > > > crash)? > > > > > > When this test case is run, it prints the following to the terminal: > > > ``` > > > (lldb) run > > > Process 3168 stopped > > > * thread #1, stop reason = Exception 0xc000041d encountered at address > > > 0x7ff68e6f1227 > > > frame #0: 0x00007ff68e6f1227 wndproc_exception.cpp.tmp.exe > > > -> 0x7ff68e6f1227: movl $0x1, (%rax) > > > 0x7ff68e6f122d: movq $0x0, 0x50(%rsp) > > > 0x7ff68e6f1236: jmp 0x7ff68e6f1259 > > > 0x7ff68e6f123b: movq 0x48(%rsp), %r9 > > > Process 3168 launched: > > > 'C:\dev\llvm-project\llvm\build-msvc\tools\lldb\test\Shell\Process\Windows\Output\wndproc_exception.cpp.tmp.exe' > > > (x86_64) > > > ``` > > > I guess we could check for `Exception 0xc000041d encountered` maybe, > > > although I'm afraid of making the testcase unnecessarily brittle too. > > If running with lldb-server enabled, it prints a different exception code, > > `0xc0000005` (which is `STATUS_ACCESS_VIOLATION`) which probably is the > > proper nested exception, while without lldb-server, it prints `0xc000041d` > > (`STATUS_FATAL_USER_CALLBACK_EXCEPTION`). > > > > So for the purpose of this testcase, just to make sure that it doesn't > > crash in this case, it'd be better to not specify exactly which exception > > code is to be returned. > It may be that lldb-server is catching the first chance > `STATUS_ACCESS_VIOLATION` exception before the exception is passed to the > exception handler... If you test with windbg or gdb, you will get the access violation / sigsegv first, and only after continuing the debuggee you will get the `0xc000041d` exception. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128410/new/ https://reviews.llvm.org/D128410 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits