Support stacktrace on Windows

adds 'strace_win' CONFIG option
This commit is contained in:
Nick Tiskov
2013-01-19 20:16:57 +04:00
parent 0ace60a39b
commit a9cffd8863
5 changed files with 356 additions and 2 deletions

49
src/stacktrace_win_dlg.h Normal file
View File

@@ -0,0 +1,49 @@
#ifndef STACKTRACE_WIN_DLG_H
#define STACKTRACE_WIN_DLG_H
#include <QTextStream>
#include <QClipboard>
#include "boost/version.hpp"
#include "libtorrent/version.hpp"
#include "ui_stacktrace_win_dlg.h"
class StraceDlg : public QDialog, private Ui::errorDialog {
Q_OBJECT
public:
StraceDlg(QWidget *parent = 0): QDialog(parent) {
setupUi(this);
}
~StraceDlg() {}
void setStacktraceString(const QString& trace) {
QString htmlStr;
QTextStream outStream(&htmlStr);
outStream << "<p align=center><b><font size=7 color=red>" <<
"qBittorrent has crashed" <<
"</font></b></p>" <<
"<font size=4>" <<
"<p>" <<
"Please report a bug at <a href=\"http://bugs.qbittorrent.org\">" <<
"http://bugs.qbittorrent.org</a>" <<
" and provide the following backtrace." <<
"</p>" <<
"</font>" <<
"<br/><hr><br/>" <<
"<p align=center><font size=4>qBittorrent version: " << VERSION <<
"<br/>Libtorrent version: " << LIBTORRENT_VERSION <<
"<br/>Qt version: " << QT_VERSION_STR <<
"<br/>Boost version: " << QString::number(BOOST_VERSION / 100000) << '.' <<
QString::number((BOOST_VERSION / 100) % 1000) << '.' <<
QString::number(BOOST_VERSION % 100) << "</font></p><br/>"
"<pre><code>" <<
trace <<
"</code></pre>" <<
"<br/><hr><br/><br/>";
errorText->setHtml(htmlStr);
}
};
#endif