ted added a comment.

My guess is the target create is failing. This line in the test:

  target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "thumbv7")
   

Seems to be the same as:

  target create -a thumbv7 ""

On my Linux box, I get this:

  (lldb) target create -a thumbv7 ""
  Current executable set to '' (arm).
  (lldb) target list
  Current targets:
  * target #0: <none> ( arch=arm--linux, platform=remote-linux )

My guess is LLDB on OSX doesn't have a platform that would handle a "thumbv7" 
target, so the target create fails.

Perhaps LLDB should stick with the selected platform if it's valid and it can't 
find a platform that is compatible with the target. Something like:

  if (!prefer_platform_arch && arch.IsValid())
  {
      if (!platform_sp->IsCompatibleArchitecture(arch, false, &platform_arch))
      {
          platform_sp = Platform::GetPlatformForArchitecture(arch, 
&platform_arch);
          if (!is_dummy_target && platform_sp)
              debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
      }
  }
  else if (platform_arch.IsValid())
  {
      // if "arch" isn't valid, yet "platform_arch" is, it means we have an 
executable file with
      // a single architecture which should be used
      ArchSpec fixed_platform_arch;
      if (!platform_sp->IsCompatibleArchitecture(platform_arch, false, 
&fixed_platform_arch))
      {
          platform_sp = Platform::GetPlatformForArchitecture(platform_arch, 
&fixed_platform_arch);
          if (!is_dummy_target && platform_sp)
              debugger.GetPlatformList().SetSelectedPlatform(platform_sp);
      }
  }
  if (!platform_sp)
      platform_sp = debugger.GetPlatformList().GetSelectedPlatform();

What do you think, Greg - return an error, or use the current (incompatible) 
platform?


Repository:
  rL LLVM

http://reviews.llvm.org/D12303



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to