Debugger: Remove set thread name exceptions from Issue Pane.

Task-number: QTCREATORBUG-9301

Change-Id: I0fed977ab0f0d55cece1dbaf9d6dc9c0c0e870be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
David Schulz
2013-05-16 14:36:58 -07:00
parent 950a40e899
commit 2989a1e571
4 changed files with 8 additions and 6 deletions

View File

@@ -68,6 +68,7 @@ CPlusPlus::Symbol *AnalyzerUtils::findSymbolUnderCursor()
TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor *>(editor);
if (!textEditor)
return 0;
TextEditor::BaseTextEditorWidget *editorWidget = qobject_cast<TextEditor::BaseTextEditorWidget *>(editor->widget());
if (!editorWidget)
return 0;

View File

@@ -2086,9 +2086,9 @@ unsigned CdbEngine::examineStopReason(const GdbMi &stopReason,
WinException exception;
exception.fromGdbMI(stopReason);
QString description = exception.toString();
// It is possible to hit on a startup trap or WOW86 exception while stepping (if something
// It is possible to hit on a set thread name or WOW86 exception while stepping (if something
// pulls DLLs. Avoid showing a 'stopped' Message box.
if (exception.exceptionCode == winExceptionStartupCompleteTrap
if (exception.exceptionCode == winExceptionSetThreadName
|| exception.exceptionCode == winExceptionWX86Breakpoint)
return StopNotifyStop;
if (exception.exceptionCode == winExceptionCtrlPressed) {
@@ -2448,7 +2448,8 @@ void CdbEngine::handleExtensionMessage(char t, int token, const QByteArray &what
// Report C++ exception in application output as well.
if (exception.exceptionCode == winExceptionCppException)
showMessage(message + QLatin1Char('\n'), AppOutput);
if (!isDebuggerWinException(exception.exceptionCode)) {
if (!isDebuggerWinException(exception.exceptionCode)
&& exception.exceptionCode != winExceptionSetThreadName) {
const Task::TaskType type =
isFatalWinException(exception.exceptionCode) ? Task::Error : Task::Warning;
const Utils::FileName fileName = exception.file.isEmpty() ?

View File

@@ -98,7 +98,7 @@ void formatWindowsException(unsigned long code, quint64 address,
case winExceptionCppException:
str << "C++ exception";
break;
case winExceptionStartupCompleteTrap:
case winExceptionSetThreadName:
str << "Startup complete";
break;
case winExceptionDllNotFound:
@@ -202,7 +202,7 @@ bool isFatalWinException(long code)
switch (code) {
case EXCEPTION_BREAKPOINT:
case EXCEPTION_SINGLE_STEP:
case winExceptionStartupCompleteTrap: // Mysterious exception at start of application
case winExceptionSetThreadName:
case winExceptionRpcServerUnavailable:
case winExceptionRpcServerInvalid:
case winExceptionDllNotFound:

View File

@@ -48,7 +48,7 @@ bool isWinProcessBeingDebugged(unsigned long pid);
enum
{
winExceptionCppException = 0xe06d7363,
winExceptionStartupCompleteTrap = 0x406d1388,
winExceptionSetThreadName = 0x406d1388,
winExceptionRpcServerUnavailable = 0x6ba,
winExceptionRpcServerInvalid = 0x6a6,
winExceptionDllNotFound = 0xc0000135,