> But you should get a better stacktrace ?

I got the exact same stacktrace.

$ ldd
venv3/lib/python3.5/site-packages/JCC-3.0-py3.5-linux-x86_64.egg/libjcc3.so
        linux-vdso.so.1 (0x00007ffcf4eb8000)
        libjava.so =>
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/libjava.so
(0x00007f412227f000)
        libjvm.so =>
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so
(0x00007f412133d000)
        libpython3.5m.so.1.0 =>
/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0 (0x00007f4120c3a000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(0x00007f41208b8000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f41205b4000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007f412039b000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f412017e000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f411fddf000)
        libverify.so =>
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/libverify.so
(0x00007f411fbce000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f411f9ca000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
(0x00007f411f7a0000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f411f584000)
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1
(0x00007f411f381000)
        /lib64/ld-linux-x86-64.so.2 (0x000055857b9dd000)

I did verify it's compiling with -g

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall
-Wstrict-prototypes -g
-fdebug-prefix-map=/build/python3.5-MLq5fN/python3.5-3.5.3=.
-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time
-D_FORTIFY_SOURCE=2 -fPIC -g -D_java_generics -DJCC_VER="3.0"
-I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include
-I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include/linux -I_jcc3
-Ijcc3/sources -I/usr/include/python3.5m
-I/home/joshua/unnaturalcode/venv3/include/python3.5m -c
_jcc3/java/lang/String.cpp -o
build/temp.linux-x86_64-3.5/_jcc3/java/lang/String.o -DPYTHON
-fno-strict-aliasing -Wno-write-strings -O0 -g -DDEBUG

But it's still producing

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe47eb2b4 in ?? ()
(gdb) bt
#0  0x00007fffe47eb2b4 in ?? ()
#1  0x0000000000000246 in ?? ()
#2  0x00007fffe47eb160 in ?? ()
#3  0x00007fffffffc840 in ?? ()
#4  0x00007fffffffc7e0 in ?? ()
#5  0x00007ffff6006075 in VM_Version::get_processor_features() ()
   from /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Backtrace stopped: previous frame inner to this frame (corrupt stack?)




On Wed, Jul 5, 2017 at 11:38 AM, Andi Vajda <va...@apache.org> wrote:

>
> On Jul 5, 2017, at 18:56, Joshua Campbell <josh...@ualberta.ca> wrote:
>
> >> What version if java is this jcc built with ?
> >> To build jcc for debugging with gcc add --debug to the build command.
> You
> > should then have symbols visible to gdb.
> >
> > You mean with setup.py build --debug ? I tried that on trunk and got the
> > same result.
>
> But you should get a better stacktrace ?
>
> >> Is the version of java used here the same as during jcc build time ?
> >
> > Yes I made sure of that and uninstalled all but openjdk and rebuilt.
>
> Did you verify this via running 'ldd' on the shared libraries involved ?
>
> That being said, it could be something different of course !
>
> Andi..
>
> >
> >> On Wed, Jul 5, 2017 at 10:46 AM, Andi Vajda <va...@apache.org> wrote:
> >>
> >>
> >>> On Jul 5, 2017, at 18:25, Joshua Campbell <josh...@ualberta.ca> wrote:
> >>>
> >>> This segfault appears to occur within the JVM code on both
> >> oracle-java8-jdk
> >>> and
> >>> java-1.8.0-openjdk-amd64. I installed the JVM debugging symbols but it
> >>> didn't seem to help.
> >>>
> >>> Occurs under python 2 and 3. I don't know how to debug this any
> further.
> >>>
> >>> 0 joshua@buttercup unnaturalcode 17609$ python3 -m virtualenv -p
> python3
> >>> venv3  Already using interpreter /usr/bin/python3
> >>> Using base prefix '/usr'
> >>> New python executable in /home/joshua/unnaturalcode/venv3/bin/python3
> >>> Also creating executable in /home/joshua/unnaturalcode/
> venv3/bin/python
> >>> Installing setuptools, pkg_resources, pip, wheel...done.
> >>> 0 joshua@buttercup unnaturalcode 17610$ source venv3/bin/activate
> >>> 0 joshua@buttercup unnaturalcode 17611$ which python
> >>> /home/joshua/unnaturalcode/venv3/bin/python
> >>> 0 joshua@buttercup unnaturalcode 17616$ pip install jcc --no-cache-dir
> >>> Collecting jcc
> >>> Downloading JCC-3.0.tar.gz (176kB)
> >>>   100% |████████████████████████████████| 184kB 3.4MB/s
> >>> Installing collected packages: jcc
> >>> Running setup.py install for jcc ... done
> >>
> >> What version if java is this jcc built with ?
> >> To build jcc for debugging with gcc add --debug to the build command.
> You
> >> should then have symbols visible to gdb.
> >>
> >>> Successfully installed jcc-3.0
> >>> 0 joshua@buttercup unnaturalcode 17617$ gdb --args
> >>> /home/joshua/unnaturalcode/venv3/bin/python -m jcc --jar
> >>
> >> Is the version of java used here the same as during jcc build time ?
> >>
> >> Andi..
> >>
> >>> java/lex-java/target/lex-java-1.0-SNAPSHOT.jar
> >>> GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
> >>> Copyright (C) 2016 Free Software Foundation, Inc.
> >>> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.
> >> html
> >>>>
> >>> This is free software: you are free to change and redistribute it.
> >>> There is NO WARRANTY, to the extent permitted by law.  Type "show
> >> copying"
> >>> and "show warranty" for details.
> >>> This GDB was configured as "x86_64-linux-gnu".
> >>> Type "show configuration" for configuration details.
> >>> For bug reporting instructions, please see:
> >>> <http://www.gnu.org/software/gdb/bugs/>.
> >>> Find the GDB manual and other documentation resources online at:
> >>> <http://www.gnu.org/software/gdb/documentation/>.
> >>> For help, type "help".
> >>> Type "apropos word" to search for commands related to "word"...
> >>> Reading symbols from /home/joshua/unnaturalcode/
> >> venv3/bin/python...Reading
> >>> symbols from
> >>> /usr/lib/debug/.build-id/db/fc2e1a3c58b6d241b3f9af7b2fb3a2
> >> 4b81b90e.debug...done.
> >>> done.
> >>> (gdb) r
> >>> Starting program: /home/joshua/unnaturalcode/venv3/bin/python -m jcc
> >> --jar
> >>> java/lex-java/target/lex-java-1.0-SNAPSHOT.jar
> >>> [Thread debugging using libthread_db enabled]
> >>> Using host libthread_db library "/lib/x86_64-linux-gnu/
> >> libthread_db.so.1".
> >>> Installing openjdk unwinder
> >>> Traceback (most recent call last):
> >>> File
> >>> "/usr/share/gdb/auto-load/usr/lib/jvm/java-8-openjdk-amd64/
> >> jre/lib/amd64/server/
> >>> libjvm.so-gdb.py", line 52, in <module>
> >>>   class Types(object):
> >>> File
> >>> "/usr/share/gdb/auto-load/usr/lib/jvm/java-8-openjdk-amd64/
> >> jre/lib/amd64/server/
> >>> libjvm.so-gdb.py", line 66, in Types
> >>>   nmethodp_t = gdb.lookup_type('nmethod').pointer()
> >>> gdb.error: No type named nmethod.
> >>>
> >>> Program received signal SIGSEGV, Segmentation fault.
> >>> 0x00007fffe47f22b4 in ?? ()
> >>> (gdb) bt
> >>> #0  0x00007fffe47f22b4 in ?? ()
> >>> #1  0x0000000000000246 in ?? ()
> >>> #2  0x00007fffe47f2160 in ?? ()
> >>> #3  0x00007fffffffc8c0 in ?? ()
> >>> #4  0x00007fffffffc860 in ?? ()
> >>> #5  0x00007ffff600d075 in VM_Version::get_processor_features() ()
> >>>  from /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/
> >> server/libjvm.so
> >>> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
> >>>
> >>>
> >>>
> >>> --
> >>> Joshua Charles Campbell
> >>> Ph.D. Student and Research Assistant
> >>> Department of Computing Science
> >>> University of Alberta
> >>> josh...@ualberta.ca
> >>
> >>
> >
> >
> > --
> > Joshua Charles Campbell
> > Ph.D. Student and Research Assistant
> > Department of Computing Science
> > University of Alberta
> > josh...@ualberta.ca
>
>


-- 
Joshua Charles Campbell
Ph.D. Student and Research Assistant
Department of Computing Science
University of Alberta
josh...@ualberta.ca

Reply via email to