Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-2339

Memory leak in Debugger Plugin - StackHandler

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • Qt Creator 2.1.0
    • None
    • Debugger
    • None
    • Qt Creator master branch:
      commit 7aaaa750945cfd333404b20fa486e22bcb8dd732
      Author: Marco Bubke <marco.bubke@nokia.com>
      Date: Thu Sep 9 19:37:01 2010 +0200
    • 0924aaff47086054bb00b9a6509f6e374146f633

    Description

      Hi,

      It looks like there is a memory leak in Debugger plugin - StackHandler.

      http://qt.gitorious.org/qt-creator/qt-creator/blobs/master/src/plugins/debugger/stackhandler.cpp#line58
      src/plugins/debugger/stackhandler.cpp constructor StackHandler::StackHandler(DebuggerEngine *engine):

      m_disassemblerViewAgent is created:
      m_disassemblerViewAgent = new DisassemblerViewAgent(engine);

      But in the destructor it is not deleted.
      StackHandler::~StackHandler()
      {
      //delete m_disassemblerViewAgent;
      }

      ?

      DisassemblerViewAgent does not set a parent:
      DisassemblerViewAgent::DisassemblerViewAgent(DebuggerEngine *engine)
      : QObject(0), d(new DisassemblerViewAgentPrivate)
      {
      d->engine = engine;
      }

      At least Valgrind reports about memory leak (after the exit):
      ======
      308 (12 direct, 296 indirect) bytes in 1 blocks are definitely lost
      operator new(unsigned int) (vg_replace_malloc.c:255)
      Debugger::Internal::StackHandler::StackHandler(Debugger::DebuggerEngine*) (stackhandler.cpp:58)
      Debugger::DebuggerEnginePrivate::DebuggerEnginePrivate(Debugger::DebuggerEngine*, Debugger::DebuggerStartParameters const&) (debuggerengine.cpp:239)
      Debugger::DebuggerEngine::DebuggerEngine(Debugger::DebuggerStartParameters const&) (debuggerengine.cpp:409)
      Debugger::Internal::SessionEngine::SessionEngine() (sessionengine.cpp:45)
      Debugger::DebuggerPluginPrivate::initialize(QStringList const&, QString*) (debuggerplugin.cpp:1133)
      Debugger::DebuggerPlugin::initialize(QStringList const&, QString*) (debuggerplugin.cpp:2546)
      ExtensionSystem::Internal::PluginSpecPrivate::initializePlugin() (pluginspec.cpp:925)
      ExtensionSystem::Internal::PluginManagerPrivate::loadPlugin(ExtensionSystem::PluginSpec*, ExtensionSystem::PluginSpec::State) (pluginmanager.cpp:921)
      ExtensionSystem::Internal::PluginManagerPrivate::loadPlugins() (pluginmanager.cpp:780)
      ExtensionSystem::PluginManager::loadPlugins() (pluginmanager.cpp:253)
      main (main.cpp:293)
      ======

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            rlohning Robert Löhning
            mdn Denis Mingulov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes