Minidump stack trace


#1

Hello.
I’m getting a not full stack trace on sentry. But when I use minidump_stackwalk.exe locally, the stack trace is OK.
For example. On sentry I have this:

  • Qt5Core QConfFileCustomFormat::~QConfFileCustomFormat() qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\xml\qxmlstream.h:77

  • MyApp Components::receive_message(QString const &) myapp\components.cpp:179

  • Qt5Core QMetaObject::activate(QObject *,QMetaObject const *,int,void * *) qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\kernel\qobject.cpp:3602

  • Qt5Core QMetaObject::activate(QObject *,int,int,void * *) qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\kernel\qobject.cpp:3740

But it should look like this:

  • MyApp MyWidget::receive_message(QString const &) myapp\mywidget.cpp:347

  • Qt5Core QConfFileCustomFormat::~QConfFileCustomFormat() qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\xml\qxmlstream.h:77

  • MyApp Components::receive_message(QString const &) myapp\components.cpp:179

  • Qt5Core QMetaObject::activate(QObject *,QMetaObject const *,int,void * *) qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\kernel\qobject.cpp:3602

  • Qt5Core QMetaObject::activate(QObject *,int,int,void * *) qt-everywhere-opensource-src-5.8.0\qtbase\src\corelib\kernel\qobject.cpp:3740

So, sentry lost a few last steps.


#2

Maybe some frames got inlined by the compiler optimizer ? 5 frames in debug but only 4 frames in release builds ?


#3

Nope, both examples are from release build. Also I got these stack traces from the same dmp file. Just first I got after uploading to sentry, second - locally with minidump_stackwalk.exe.


#4

There’s something called ‘CFI’ (Call Frame Information ?) that might not be used by sentry to compute the backtrace.