[lldb-dev] Linux: lldb tests are failed

k.baladurin via lldb-dev lldb-dev at lists.llvm.org
Mon Jul 16 08:09:33 PDT 2018


Hello Pavel,

Thank you for replying! I've created a review for this change: 
https://reviews.llvm.org/D49379

BR,
Konstantin Baladurin


On 16.07.2018 13:45, Pavel Labath wrote:
> Hello Konstantin,
>
> that sounds like a good idea. We've had reports of this in the past,
> but so far noone dug into it to find out what's going on (thank you
> for that). Can you create a review for this
> (https://reviews.llvm.org/differential/)?
>
> pl
> On Mon, 9 Jul 2018 at 14:17, k.baladurin via lldb-dev
> <lldb-dev at lists.llvm.org> wrote:
>> Hello!
>>
>> Some lldb tests, for example test_hello_watchlocation_gmodules, are failed due to UnicodeDecodeError:
>>
>> Config=x86_64-/home/jenkins/workspace/CS_for_Tizen/custom_test/llvm-x64/bin/clang-5.0
>> ======================================================================
>> ERROR: test_hello_watchlocation_gmodules (TestWatchLocation.HelloWatchLocationTestCase)
>>     Test watching a location with '-s size' option.
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1752, in gmodules_test_method
>>      return attrvalue(self)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/decorators.py", line 110, in wrapper
>>      func(*args, **kwargs)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/decorators.py", line 110, in wrapper
>>      func(*args, **kwargs)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/decorators.py", line 110, in wrapper
>>      func(*args, **kwargs)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/decorators.py", line 110, in wrapper
>>      func(*args, **kwargs)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/decorators.py", line 110, in wrapper
>>      func(*args, **kwargs)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py", line 102, in test_hello_watchlocation
>>      self.runCmd("process continue")
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2070, in runCmd
>>      print(self.res.GetError(), file=sbuf)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 293, in __exit__
>>      print(self.getvalue(), file=self.session)
>>    File "/home/jenkins/workspace/CS_for_Tizen/custom_test/lldb/packages/Python/lldbsuite/support/encoded_file.py", line 34, in impl
>>      s = s.decode(encoding)
>>    File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
>>      return codecs.utf_8_decode(input, errors, True)
>> UnicodeDecodeError: 'utf8' codec can't decode byte 0xfb in position 257: invalid start byte
>>
>> This error occurs when we try to decode following string:
>>
>> runCmd: process continue
>> output: Process 579 resuming
>> Process 579 stopped
>> * thread #2, name = 'test_hello_watc', stop reason = watchpoint 1
>>      frame #0: 0x000000000040150f test_hello_watchlocation_gmodules`do_bad_thing_with_location(char_ptr="\x01$\xad�, new_val='\x01') at main.cpp:40
>>     37          unsigned what = new_val;
>>     38          printf("new value written to location(%p) = %u\n", char_ptr, what);
>>     39          *char_ptr = new_val;
>> -> 40      }
>>     41
>>     42      uint32_t
>>     43      access_pool (bool flag = false)
>>
>> Should we ignore such errors?
>>
>> With the following patch tests are passed:
>>
>> diff --git a/lldb/packages/Python/lldbsuite/support/encoded_file.py b/lldb/packages/Python/lldbsuite/support/encoded_file.py
>> index 2c2fef3..6412e76 100644
>> --- a/lldb/packages/Python/lldbsuite/support/encoded_file.py
>> +++ b/lldb/packages/Python/lldbsuite/support/encoded_file.py
>> @@ -31,7 +31,7 @@ def _encoded_write(old_write, encoding):
>>           # If we were asked to write a `str` (in Py2) or a `bytes` (in Py3) decode it
>>           # as unicode before attempting to write.
>>           if isinstance(s, six.binary_type):
>> -            s = s.decode(encoding)
>> +            s = s.decode(encoding, 'ignore')
>>           return old_write(s)
>>       return impl
>>
>> Thank you!
>>
>> BR,
>> Konstantin Baladurin
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>



More information about the lldb-dev mailing list