[lldb-dev] swig v3.0.3 breaks lldb python API (lldb.py)
Ilia K
ki.stfu at gmail.com
Wed Jan 21 15:55:42 PST 2015
Hello,
Today I had errors after updating the SWIG to version 3.0.3.
After rebuild I can't run any tests because I got the following errors:
> $ ./dotest.py -v --executable $BUILDDIR/bin/lldb
['./dotest.py', '-v', '--executable',
> '/Users/IliaK/p/llvm/build_ninja/bin/lldb']
LLDB library dir: /Users/IliaK/p/llvm/build_ninja/bin
Traceback (most recent call last):
File "<string>", line 1, in <module>
File
> "/Users/IliaK/p/llvm/build_ninja/lib/python2.7/site-packages/lldb/__init__.py",
> line 1867
def RemoveListener(self, listener, event_mask=4294967295U):
^
SyntaxError: invalid syntax
lldb-330.99.0
This script requires lldb.py to be in either
> /Users/IliaK/p/llvm/tools/lldb/build/Debug/LLDB.framework/Resources/Python,
> /Users/IliaK/p/llvm/tools/lldb/build/Release/LLDB.framework/Resources/Python,
> or
> /Users/IliaK/p/llvm/tools/lldb/build/BuildAndIntegration/LLDB.framework/Resources/Python.
> Some tests might fail.
Traceback (most recent call last):
File "./dotest.py", line 1295, in <module>
os.path.walk(testdir, visit, 'Test')
File
> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py",
> line 246, in walk
walk(name, func, arg)
File
> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py",
> line 246, in walk
walk(name, func, arg)
File
> "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py",
> line 238, in walk
func(arg, top, names)
File "./dotest.py", line 1192, in visit
suite.addTests(unittest2.defaultTestLoader.loadTestsFromName(base))
File "/Users/IliaK/p/llvm/tools/lldb/test/unittest2/loader.py", line 111,
> in loadTestsFromName
module = __import__('.'.join(parts_copy))
File
> "/Users/IliaK/p/llvm/tools/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py",
> line 8, in <module>
from lldbtest import *
File "/Users/IliaK/p/llvm/tools/lldb/test/lldbtest.py", line 43, in <module>
import lldb
ImportError: No module named lldb
llvm/build_ninja/lib/python2.7/site-packages/lldb/__init__.py, line 1867:
> def RemoveListener(self, listener, event_mask=4294967295U):
"""
RemoveListener(SBBroadcaster self, SBListener listener, uint32_t
> event_mask=4294967295U) -> bool
RemoveListener(SBBroadcaster self, SBListener listener) -> bool
"""
return _lldb.SBBroadcaster_RemoveListener(self, listener, event_mask)
Previously with v3.0.2, it looks like:
> def RemoveListener(self, *args):
>
"""
RemoveListener(SBBroadcaster self, SBListener listener, uint32_t
> event_mask=4294967295U) -> bool
RemoveListener(SBBroadcaster self, SBListener listener) -> bool
"""
return _lldb.SBBroadcaster_RemoveListener(self, *args)
I found that "event_mask=4294967295U" is taken from interface file
scripts/Python/interface/SBBroadcaster.i:
> class SBBroadcaster
>
{
...
bool
RemoveListener (const lldb::SBListener &listener, uint32_t event_mask =
> UINT32_MAX);
As I understood SWIG since v3.0.3 supports default variables (unstable).
If you already had updated to v3.0.3 the following patch will help you:
> diff --git a/scripts/Python/interface/SBBroadcaster.i
> b/scripts/Python/interface/SBBroadcaster.i
index b5e25b6..6fa7d2b 100644
--- a/scripts/Python/interface/SBBroadcaster.i
+++ b/scripts/Python/interface/SBBroadcaster.i
@@ -56,7 +56,7 @@ public:
EventTypeHasListeners (uint32_t event_type);
bool
- RemoveListener (const lldb::SBListener &listener, uint32_t event_mask =
> UINT32_MAX);
+ RemoveListener (const lldb::SBListener &listener, uint32_t event_mask =
> 4294967295);
bool
operator == (const lldb::SBBroadcaster &rhs) const;
If not, don't update to this version.
Bug already has been posted in SWIG's bug tracker:
https://github.com/swig/swig/issues/313
Thanks,
Ilia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150122/934e4034/attachment.html>
More information about the lldb-dev
mailing list