diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index e57b0b189e60151f3a5fbf1d5d4e421b2804598e..a596dea1c0f7549b1e8ed8c4d32f2c7b0e4a4af3 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -365,6 +365,8 @@ CdbEngine::CdbEngine(const DebuggerStartParameters &sp) :
             this, SLOT(operateByInstructionTriggered(bool)));
     connect(debuggerCore()->action(VerboseLog), SIGNAL(triggered(bool)),
             this, SLOT(verboseLogTriggered(bool)));
+    connect(debuggerCore()->action(CreateFullBacktrace), SIGNAL(triggered()),
+            this, SLOT(createFullBacktrace()));
     setObjectName(QLatin1String("CdbEngine"));
     connect(&m_process, SIGNAL(finished(int)), this, SLOT(processFinished()));
     connect(&m_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError()));
@@ -597,6 +599,16 @@ void CdbEngine::consoleStubExited()
 {
 }
 
+void CdbEngine::createFullBacktrace()
+{
+    postBuiltinCommand("~*kp", 0, &CdbEngine::handleCreateFullBackTrace);
+}
+
+void CdbEngine::handleCreateFullBackTrace(const CdbEngine::CdbBuiltinCommandPtr &cmd)
+{
+    debuggerCore()->openTextEditor(QLatin1String("Backtrace $"), QLatin1String(cmd->joinedReply()));
+}
+
 void CdbEngine::setupEngine()
 {
     if (debug)
@@ -1101,6 +1113,7 @@ bool CdbEngine::hasCapability(unsigned cap) const
            |BreakOnThrowAndCatchCapability // Sort-of: Can break on throw().
            |BreakConditionCapability|TracePointCapability
            |BreakModuleCapability
+           |CreateFullBacktraceCapability
            |OperateByInstructionCapability
            |RunToLineCapability
            |MemoryAddressCapability);
diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h
index 4d8e9d1214606ae66e185100325da616b8fcd81d..f9b4962f2cf1000003177e86806a055c023784cb 100644
--- a/src/plugins/debugger/cdb/cdbengine.h
+++ b/src/plugins/debugger/cdb/cdbengine.h
@@ -156,6 +156,8 @@ private slots:
     void consoleStubProcessStarted();
     void consoleStubExited();
 
+    void createFullBacktrace();
+
     void handleDoInterruptInferior(const QString &errorMessage);
 
 private:
@@ -227,6 +229,7 @@ private:
     void ensureUsing32BitStackInWow64(const CdbBuiltinCommandPtr &cmd);
     void handleSwitchWow64Stack(const CdbBuiltinCommandPtr &cmd);
     void jumpToAddress(quint64 address);
+    void handleCreateFullBackTrace(const CdbBuiltinCommandPtr &cmd);
 
     // Extension commands
     void handleThreads(const CdbExtensionCommandPtr &);