This may be a question more suited some Programming Meta Discussions.

I was trying to delve deeper into the inner plugin management feature for QT Creator 2.x IDE provided by Digia Inc. So I effectively downloaded the source code for QT Creator and built it to debug how this functionality is implemented.

Hence I used an IDE to debug the same IDE. So my question is are there any pit-falls while doing so? Is it recommended that in such a scenario it's better to use two different IDEs (e.g. using Visual Studio to build QT Creator).

  • 5
    don't get confused about which window is the IDE that is being debugged Sep 19, 2013 at 15:06
  • It's called dogfooding. Sep 19, 2013 at 16:16
  • Changing the visual appearance (background color,...) of one of the IDE could make it harder to confuse. Sep 19, 2013 at 16:52
  • Oh and make sure the windows don't overlap, if you do it may rip apart the world with a cosmic inconsistency. Sep 19, 2013 at 17:06

2 Answers 2


It's really no different than building an application that can have multiple instances of itself.

From my experience, the biggest hangup is the persistence layer. Whether that's a configuration file or a call to a database, apps seem to get trapped into accessing a specific persistence object in a specific way which makes it all the more difficult to have multiple instances in place.

After that, you have to be a bit intelligent in how you lay things out. Visual indicators such as different backgrounds; title bar text; fonts; different account logins; different monitor locations; etc... all help make it clear which editor is primary / stable and which editor is in development.

It should be obvious, but this implies two separate code trees in the example you provided. One for the primary editor which is never changed. Another for the secondary editor which is under development.

And this approach holds up even to the extent of using the primary IDE to debug the development IDE as you mentioned in your question. When you're debugging the debugger capabilities of an IDE, then you'll need to feed a separate application into the development editor so it has something different to debug. In reality, that's not all that different from the tertiary project you would need to create in the secondary (development) editor in order to test the changes you made to the secondary editor.

It can be pretty easy to wrap your head around an axle with the meta aspects of building an IDE. The key is to clearly differentiate what each project is doing.


Just a suggestion if you are on Ubuntu;

Download the Ubuntu SDk or just stock qtcreator from the repos, and use that to build a version of QtCreator you downloaded from source.

I tried doing it where I used the source version to edit the source version, and experienced frequent hangups and crashing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.