View Single Post
Posts: 303 | Thanked: 1,400 times | Joined on Oct 2013 @ France
#123
Originally Posted by rinigus View Post
@Zeta, I wonder if you could try to run the demo from

http://repo.merproject.org/obs/home:...mv7hl/armv7hl/
No problem to test !

So, first removing all previous *mapbox* programs, changing the repo to maps-debug, and installing the new version (pkcon install.... like previous tries), I still get a crash but with a simple null pointer as the source:

Code:
(gdb) bt full
#0  0x00000000 in ?? () 
No symbol table info available.
#1  0x2a18d280 in mbgl::gl::checkError(char const*, char const*, int) ()
No symbol table info available.
#2  0x2a18b5a6 in mbgl::gl::Context::initializeExtensions(std::function<void (*(char const*))()> const&) ()
No symbol table info available.
#3  0x2a0ed672 in void std::call_once<mbgl::RendererBackend::getContext()::{lambda()#1}>(std::once_flag&, mbgl::RendererBackend::getContext()::{lambda()#1}&&)::{lambda()#2}::_FUN() ()
No symbol table info available.
#4  0x40dee35c in __GI___pthread_once (once_control=0x44f224a0, init_routine=0x2a2fd6b9 <__once_proxy+1>) at ../ports/sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c:76
        _buffer = {__routine = 0x40dee2cd <clear_once_control>, __arg = 0x44f224a0, __canceltype = 709104808, __prev = 0x0}
#5  0x2a0ed730 in mbgl::RendererBackend::getContext() ()
No symbol table info available.
#6  0x2a0ef176 in mbgl::Renderer::Impl::render(mbgl::UpdateParameters const&) ()
No symbol table info available.
#7  0x2a0e21c2 in QMapboxGLRendererFrontend::render() ()
No symbol table info available.
#8  0x2a08514c in QSGMapboxGLTextureNode::render (this=this@entry=0x44f61068, window=0x2a456308) at mapbox-gl-qml/src/qsgmapboxglnode.cpp:111
        loaded = false
        alignment = 4
#9  0x2a07effe in QQuickItemMapboxGL::updatePaintNode (this=0x2a54ab50, node=<optimized out>) at mapbox-gl-qml/src/qquickitemmapboxgl.cpp:769
        n = 0x44f61068
        sz = {wd = 540, ht = 960}
        map = 0x44f066c8
        loaded = <optimized out>
        tol = <optimized out>
#10 0x401fc970 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) () from /usr/lib/libQt5Quick.so.5
No symbol table info available.
#11 0x44f29618 in ?? ()
No symbol table info available.
#12 0x44f29618 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
So there must be a function pointer not initialized called by mbgl::gl::checkError().

If the version I have localy match the one you use, that would mean something like this causes the crash (from "mapbox-gl-native/src/mbgl/gl/gl.cpp") :
Code:
void checkError(const char* cmd, const char* file, int line) {
//    fprintf(stderr, "cmd: %s\n", cmd);
    GLenum err = GL_NO_ERROR;
    if ((err = glGetError()) != GL_NO_ERROR) {
        std::string message = std::string(cmd) + ": Error " + stringFromError(err);

        // Check for further errors
        while ((err = glGetError()) != GL_NO_ERROR) {
            message += ", ";
            message += stringFromError(err);
        }

        throw Error(message + " at " + file + ":" + util::toString(line));
    }
}
Not sure how the "throw" would be handled in a Qt context which doesn't use exceptions. Otherwise, there is not much that could call adress 0x0, everything else being static, so not due to a null object ?

What could help is to find a way to resolve the "No symbol table info available." messages, to be able to see local variables at each step. I have installed as much a I can (-debuginfo, -debugsource), but something is still missing.
 

The Following 2 Users Say Thank You to Zeta For This Useful Post: