mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 08:16:05 +00:00
For processes which are not in one of the "launched and stopped" state, 'target variable' command
should use Target::ReadMemory() call to read from the file section offset address. Also remove the @expectedFailure decorator.. 'target variable' command fails if the target program has been run rdar://problem/9763907 llvm-svn: 149629
This commit is contained in:
parent
b6d6508b16
commit
fd72fbef41
@ -425,7 +425,20 @@ Value::GetValueAsData (ExecutionContext *exe_ctx,
|
||||
{
|
||||
Address so_addr(address, objfile->GetSectionList());
|
||||
addr_t load_address = so_addr.GetLoadAddress (exe_ctx->GetTargetPtr());
|
||||
if (load_address != LLDB_INVALID_ADDRESS)
|
||||
bool process_launched_and_stopped = false;
|
||||
if (exe_ctx->GetProcessPtr())
|
||||
switch (exe_ctx->GetProcessPtr()->GetState())
|
||||
{
|
||||
default:
|
||||
break;
|
||||
case eStateInvalid:
|
||||
case eStateSuspended:
|
||||
case eStateCrashed:
|
||||
case eStateStopped:
|
||||
process_launched_and_stopped = true;
|
||||
}
|
||||
// Don't use the load address if the process has exited.
|
||||
if (load_address != LLDB_INVALID_ADDRESS && process_launched_and_stopped)
|
||||
{
|
||||
resolved = true;
|
||||
address = load_address;
|
||||
|
@ -36,7 +36,6 @@ class targetCommandTestCase(TestBase):
|
||||
|
||||
# rdar://problem/9763907
|
||||
# 'target variable' command fails if the target program has been run
|
||||
@unittest2.expectedFailure
|
||||
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
|
||||
def test_target_variable_command_with_dsym(self):
|
||||
"""Test 'target variable' command before and after starting the inferior."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user