Re: [Lldb-commits] [PATCH] D32522: Test case for the issue raised in D32271

2017-05-09 Thread vignesh balu via lldb-commits
you mean like this "exe = os.path.join('./newdir/','proc_attach')". I can't
use "os.getcwd" as it will become the absolute path which we should not use.

thanks,
vbalu

On Wed, May 3, 2017 at 11:51 AM, Zachary Turner  wrote:

> Can you rewrite the exe path computation to use os.path.join so we're not
> assuming posix syntax?
> On Tue, May 2, 2017 at 11:11 PM vignesh balu via Phabricator via
> lldb-commits  wrote:
>
>> vbalu updated this revision to Diff 97550.
>> vbalu added a comment.
>>
>> Corrected the code. Now this test will fail without
>> https://reviews.llvm.org/D32271 patch.
>>
>>
>> https://reviews.llvm.org/D32522
>>
>> Files:
>>   packages/Python/lldbsuite/test/functionalities/process_
>> attach/TestProcessAttach.py
>>
>>
>> Index: packages/Python/lldbsuite/test/functionalities/process_
>> attach/TestProcessAttach.py
>> ===
>> --- packages/Python/lldbsuite/test/functionalities/process_
>> attach/TestProcessAttach.py
>> +++ packages/Python/lldbsuite/test/functionalities/process_
>> attach/TestProcessAttach.py
>> @@ -8,6 +8,7 @@
>>  import os
>>  import time
>>  import lldb
>> +import shutil
>>  from lldbsuite.test.decorators import *
>>  from lldbsuite.test.lldbtest import *
>>  from lldbsuite.test import lldbutil
>> @@ -38,6 +39,25 @@
>>  process = target.GetProcess()
>>  self.assertTrue(process, PROCESS_IS_VALID)
>>
>> +def test_attach_to_process_frm_different_dir_by_id(self):
>> +"""Test attach by process id"""
>> +os.mkdir(os.path.join(os.getcwd(),'newdir'))
>> +self.buildProgram('main.cpp','newdir/proc_attach')
>> +exe = './newdir/proc_attach'
>> +self.addTearDownHook(lambda: shutil.rmtree(os.path.join(os.
>> getcwd(
>> +
>> +# Spawn a new process
>> +popen = self.spawnSubprocess(exe)
>> +self.addTearDownHook(self.cleanupSubprocesses)
>> +
>> +os.chdir('newdir')
>> +self.runCmd("process attach -p " + str(popen.pid))
>> +
>> +target = self.dbg.GetSelectedTarget()
>> +
>> +process = target.GetProcess()
>> +self.assertTrue(process, PROCESS_IS_VALID)
>> +
>>  def test_attach_to_process_by_name(self):
>>  """Test attach by process name"""
>>  self.build()
>>
>>
>> ___
>> lldb-commits mailing list
>> lldb-commits@lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>>
>
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r302584 - Import sys in repo.py.

2017-05-09 Thread Lang Hames via lldb-commits
Author: lhames
Date: Tue May  9 15:37:01 2017
New Revision: 302584

URL: http://llvm.org/viewvc/llvm-project?rev=302584&view=rev
Log:
Import sys in repo.py.

The find function in repo.py calls sys.exit on error. Without this import that
call to exit will fail, masking the actual error message. This patch fixes that.


Modified:
lldb/trunk/scripts/Xcode/repo.py

Modified: lldb/trunk/scripts/Xcode/repo.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Xcode/repo.py?rev=302584&r1=302583&r2=302584&view=diff
==
--- lldb/trunk/scripts/Xcode/repo.py (original)
+++ lldb/trunk/scripts/Xcode/repo.py Tue May  9 15:37:01 2017
@@ -3,6 +3,7 @@ import os
 import re
 import shutil
 import subprocess
+import sys
 
 def identifier():
try:


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


[Lldb-commits] [PATCH] D33025: [DWARF parser] Produce correct template parameter packs

2017-05-09 Thread Sean Callanan via Phabricator via lldb-commits
spyffe created this revision.

Templates can end in parameter packs, like this

  template  struct MyStruct { /*...*/ };

LLDB does not currently support these parameter packs; it does not emit them 
into the template argument list at all.  This causes problems when you 
specialize, e.g.:

  template <> struct MyStruct { /*...*/ };
  template <> struct MyStruct : MyStruct { /*...*/ };

LLDB generates two template specializations, each with no template arguments, 
and then when they are imported by the `ASTImporter` into a parser's AST 
context we get a single specialization that inherits from itself, causing 
Clang's record layout mechanism to smash its stack.

This patch fixes the problem for classes and adds tests.  The tests for 
functions fail because Clang's `ASTImporter` can't import them at the moment, 
so I've xfailed that test.


Repository:
  rL LLVM

https://reviews.llvm.org/D33025

Files:
  include/lldb/Symbol/ClangASTContext.h
  packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/Makefile
  
packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py
  packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/main.cpp
  
packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/Makefile
  
packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/TestFunctionTemplateParameterPack.py
  
packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/main.cpp
  source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
  source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
  source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
  source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp
  source/Symbol/ClangASTContext.cpp

Index: packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/main.cpp
===
--- packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/main.cpp
+++ packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/main.cpp
@@ -0,0 +1,24 @@
+//===-- main.cpp *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LIDENSE.TXT for details.
+//
+//===--===//
+
+template  int staticSizeof() {
+  return sizeof(T);
+}
+
+template  int staticSizeof() {
+  return staticSizeof() + sizeof(T1);
+}
+
+int main (int argc, char const *argv[])
+{
+  int sz = staticSizeof();
+  return staticSizeof() != sz; //% self.expect("expression -- sz == staticSizeof()", "staticSizeof worked", substrs = ["true"])
+  //% self.expect("expression -- sz == staticSizeof() + sizeof(char)", "staticSizeof worked", substrs = ["true"])
+  //% self.expect("expression -- sz == staticSizeof() + sizeof(int) + sizeof(char)", "staticSizeof worked", substrs = ["true"])
+}
Index: packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/TestFunctionTemplateParameterPack.py
===
--- packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/TestFunctionTemplateParameterPack.py
+++ packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/TestFunctionTemplateParameterPack.py
@@ -0,0 +1,6 @@
+from lldbsuite.test import lldbinline
+from lldbsuite.test import decorators
+
+lldbinline.MakeInlineTest(
+__file__, globals(), [
+decorators.expectedFailureAll(bugnumber="rdar://problem/32096064")])
Index: packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/Makefile
===
--- packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/Makefile
+++ packages/Python/lldbsuite/test/lang/cpp/function-template-parameter-pack/Makefile
@@ -0,0 +1,3 @@
+LEVEL = ../../../make
+CXX_SOURCES := main.cpp
+include $(LEVEL)/Makefile.rules
Index: packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/main.cpp
===
--- packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/main.cpp
+++ packages/Python/lldbsuite/test/lang/cpp/class-template-parameter-pack/main.cpp
@@ -0,0 +1,61 @@
+//===-- main.cpp *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LIDENSE.TXT for details.
+//
+//===--===//
+
+template  struct C {
+  T member;
+  bool isSixteenThirtyTwo() { return false; }
+};
+
+template <> struct C {
+  int mem