This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PING][PATCH v9] Add pretty printers for the NPTL lock types
On 07/11/2016 06:11 PM, Martin Galvan wrote:
Hi all! Before I forget, in the future please CC me directly because
sometimes I miss the mailing list digests. Thanks!
On Mon, Jul 11, 2016 at 12:00 PM, Siddhesh Poyarekar
<siddhesh@sourceware.org> wrote:
On Mon, Jul 11, 2016 at 03:16:19PM +0200, Stefan Liebler wrote:
On that machine, I have installed python-pexpect-3.1-1.fc20.noarch.
I've tried python2-pexpect-4.0.1-4.fc23.noarch on another machine and you
are right, the "echo=False" issue does not appear.
But I get fails:
FAIL: pretty-printers/test-condvar-attributes-pp:
Error: Response does not match the expected pattern.
Command: print *attr
Expected pattern: pthread_condattr_t
Response: Python Exception <class 'gdb.error'> No struct type named
pthread_condattr.:
Python Exception <class 'gdb.error'> No struct type named pthread_condattr.:
$3 = {__size = "\000\000\000", __align = 0}
<snip>
The gdb version is gdb-7.10.1-30.fc23.s390x.
That's odd, it looks like the pretty printer is still not registered.
Have you set up your gdbinit to register the printer?
To me it sounds like gdb.lookup_type not finding the struct types
representing the attributes. I'm not sure what could be causing that;
I've tested it with gdb 7.7 and 7.11 in x86_64, and 7.7 in ARM and it
always worked fine. Could you at least test it in x86?
I've tested it on a fedora 23 i686 vm with the following packages:
-python2-pexpect-4.0.1-4.fc23.noarch
-gdb-7.10-23.fc23.i686
As mentioned by Siddhesh the ~/.gdbinit contains:
python
import sys
sys.path.insert(0, '/home/stli/glibcDir/glibc-20160712_pp-build/nptl/')
end
source /home/stli/glibcDir/glibc/nptl/nptl-printers.py
add-auto-load-safe-path /home/stli/glibcDir/glibc-20160712_pp-build/nptl_db
Here is the output of the pp-tests:
FAIL: pretty-printers/test-condvar-attributes-pp
FAIL: pretty-printers/test-mutex-attributes-pp
FAIL: pretty-printers/test-rwlock-attributes-pp
env python test-mutex-attributes.py test-mutex-attributes.c
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-mutex-attributes;
\
../scripts/evaluate-test.sh pretty-printers/test-mutex-attributes-pp $?
false false >
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-mutex-attributes-pp.test-result
Error: Response does not match the expected pattern.
Command: print *attr
Expected pattern: pthread_mutexattr_t
Response: Python Exception <class 'gdb.error'> No struct type named
pthread_mutexattr.:
Python Exception <class 'gdb.error'> No struct type named
pthread_mutexattr.:
$1 = {__size = "\002\000\000", __align = 2}
gdb-test%
env python test-condvar-attributes.py test-condvar-attributes.c
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-condvar-attributes;
\
../scripts/evaluate-test.sh pretty-printers/test-condvar-attributes-pp
$? false false >
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-condvar-attributes-pp.test-result
Error: Response does not match the expected pattern.
Command: print *attr
Expected pattern: pthread_condattr_t
Response: Python Exception <class 'gdb.error'> No struct type named
pthread_condattr.:
Python Exception <class 'gdb.error'> No struct type named
pthread_condattr.:
$3 = {__size = "\000\000\000", __align = 0}
gdb-test%
env python test-rwlock-attributes.py test-rwlock-attributes.c
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-rwlock-attributes;
\
../scripts/evaluate-test.sh pretty-printers/test-rwlock-attributes-pp $?
false false >
/home/stli/glibcDir/glibc-20160712_pp-build/pretty-printers/test-rwlock-attributes-pp.test-result
Error: Response does not match the expected pattern.
Command: print *attr
Expected pattern: pthread_rwlockattr_t
Response: Python Exception <class 'gdb.error'> No struct type named
pthread_rwlockattr.:
Python Exception <class 'gdb.error'> No struct type named
pthread_rwlockattr.:
$3 = {__size = "\000\000\000\000\000\000\000", __align = 0}
gdb-test%
Nevertheless is it possible to check the correct versions and warn
at configuring or mark the tests as unsupported if pexpect is not installed
or you have the false version?
I wasn't aware of versioning issues on PExpect. FWIW I saw that the
module has a __version__ attribute, so we could set a minimum version
(4.0.1 maybe?) and mark the tests as UNSUPPORTED if our version is
lower. It would require a bit of string parsing but it should be
relatively easy to do.
I just see that the python-pexpect.noarch package in fc23 is version
3.1. You could install it instead of python2-pexpect.noarch (version
4.0.1) in order to test your version checking?