LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 24600 - TestHelloWorld can't get a valid callstack after attaching
Summary: TestHelloWorld can't get a valid callstack after attaching
Status: RESOLVED FIXED
Alias: None
Product: lldb
Classification: Unclassified
Component: All Bugs (show other bugs)
Version: unspecified
Hardware: PC Windows NT
: P normal
Assignee: LLDB commit list
URL:
Keywords:
Depends on:
Blocks: 21766
  Show dependency tree
 
Reported: 2015-08-27 13:41 PDT by Zachary Turner
Modified: 2018-12-19 16:54 PST (History)
2 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zachary Turner 2015-08-27 13:41:31 PDT
The log file shows this:

looking at: Stack traces for SBProcess: pid = 832, state = stopped, threads = 2, executable = test_with_dwarf_and_attach_to_process_with_id_api
Stack trace for thread id=0x47c name=None queue=None stop reason=none
  frame #0: 0xffffffffffffffff ntdll.dll`DbgBreakPoint + 1

Stack trace for thread id=0xc68 name=None queue=None stop reason=none
  frame #0: 0x00000077908c2c None`None + -18446744071703589843



Expecting sub string: main.c:30
Not matched

FAIL

It is expecting to see the second thread stopped in main, but it is stopped somewhere else.  The address looks reasonable, so it is most likely that the main thread hasn't yet gotten through process initialization yet and it is still in loader initialization or CRT initialization.

Another possibility is that we just have a bug relating to multiple threads and the address is totally bogus.


We should fix the test suite to not rely on racy behavior like this by implementing a cross-platform is_debugger_present() function that all test inferiors can use so we can synchronize debugger behavior with test suite behavior, but to fix this completely we will always need to provide a way to skip the initial breakpoint so that we only hit the user-created breakpoint and not the loader breakpoint, guaranteeing that the code is in main.
Comment 1 Stella Stamenova 2018-12-19 16:54:19 PST
This test is now passing on Windows