Giter Club home page Giter Club logo

kdevelop's Introduction

KDevelop

This repository contains the source code for the KDevelop IDE.

The idea that this repository contains

  • Every plugin related related to C/C++ development
  • Every plugin only specific for KDevelop (e.g. the Welcome Page plugin)

User Documentation

User documentation is available from: https://userbase.kde.org/KDevelop4/Manual

Compile

KDevelop is built the same way as most KDE projects, using CMake to set up a build directory and build options. For detailed instructions how to compile KDevelop, please refer to the Wiki: https://community.kde.org/KDevelop/HowToCompile_v5 .

Optional dependencies

Most of KDevelop's optional dependencies are opportunistic under the assumption that the build should always use all available functionality, as well as the most recent version. CMake has a lesser known feature to control which of such dependencies is used.

For instance, to skip building the Subversion plugin, use -DCMAKE_DISABLE_FIND_PACKAGE_SubversionLibrary=ON. To use QtWebKit instead of QtWebEngine for documentation rendering when both are available, add -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebEngineWidgets=ON to the CMake arguments.

Contribute

If you want to contribute to KDevelop, please read through: https://www.kdevelop.org/contribute-kdevelop

Development Infrastructure

kdevelop's People

Contributors

adymo avatar aleixpol avatar amantia avatar apaku avatar arichardson avatar bport avatar coolo avatar dfaure avatar haraldf avatar intelfx avatar jdesgats avatar jpetso avatar kdesysadmin avatar kossebau avatar krf avatar mattrdash avatar milianw avatar montel avatar mvolden avatar neundorf avatar nicolas17 avatar noughmad avatar nsams avatar olivierjg avatar razaraz avatar scummos avatar skalinichev avatar steckdenis avatar tronical avatar vprus avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

kdevelop's Issues

Stacks toolview

Stacks toolview contains list of stacks (L1), list of frames in selected stack (L2). L2 works like stack in debugger session, i.e. it allows to position cursor on source locations.

Inserting new stack to L1

Method 1

Press "new stack", paste backtrace from GDB. Optionally type name and notes. Name is selected automatically as lowest frame in stack. It is possible to select any frame for name.

Method 2

From debugger session press "save stack". Config setting: whether to ask for name or choose one automatically.

Bug #335470: Build Directory change is ignored

#335470
Для начала нужно убедиться, что он не пофиксен в транке:

  1. запустить транковую версию и воспроизвести. Затем,
  2. найти нужные элементы управления (в файле .ui) по строчкам из диалога,
  3. найте обработчик кнопки Ok, проанализировать алгоритм и
  4. исправить состояние на "изменённое" в обработчике "Build directory" (посмотреть по аналогии с элементом управления который корректно обновляет это состояние).
  5. сделать патч и отправить на review.

Wrong open dialog default directory

When no files opened in project, open dialog points to some previous directory from another session.

Reproduce 1

  1. Close all files in session, restart.
  2. In started session select project.
  3. Press Ctrl+O

Reproduce 2

  1. Start new file.
  2. Press Ctrl+O

Result

Open file dialog points to some arbitrary location.

Expected

Dialog points to location of selected project or its item.

  • save dialog also must be fixed
  • if focus is on projectTreeView then it must take precedence over opened file

Compiled plugins don't load

kdevplatform.shell: Unable to load plugin named "kdevappwizard" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevexecute" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevexternalscript" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevcppcheck" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevcodeutils" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevgdb" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "KDevProjectManagerView" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevquickopen" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevdocumentswitcher" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevdocumentview" because not all mandatory properties are set.
kdevplatform.shell: Unable to load plugin named "kdevclangsupport" because not all mandatory properties are set.

Examining KDevelop

Scrollbar event

Important: KXmlGuiWindow

#0  0x00007ffff210e5f0 in QScrollBar::event(QEvent*) (this=0x2a2b5f0, event=0x7fffffffbb50) at widgets/qscrollbar.cpp:465
#1  0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x2a2b5f0, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#2  0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x2a2b5f0, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#3  0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x2a2b5f0, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#4  0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#5  0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=<optimized out>, event=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#6  0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x1905360, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#7  0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x1905360, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#8  0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1905360, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#9  0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#10 0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=this@entry=0x12b4a10, event=event@entry=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#11 0x00007ffff20c22de in QFrame::event(QEvent*) (this=0x12b4a10, e=0x7fffffffbb50) at widgets/qframe.cpp:550
#12 0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x12b4a10, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#13 0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x12b4a10, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#14 0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x12b4a10, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#15 0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#16 0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=<optimized out>, event=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#17 0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x12b21e0, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#18 0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x12b21e0, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#19 0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x12b21e0, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#20 0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#21 0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=<optimized out>, event=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#22 0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x885170, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#23 0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x885170, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#24 0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x885170, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#25 0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#26 0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=<optimized out>, event=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#27 0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x8850a0, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#28 0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x8850a0, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#29 0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x8850a0, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#30 0x00007ffff1fe3b88 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#31 0x00007ffff1fe3b88 in QWidget::event(QEvent*) (this=this@entry=0x7995f0, event=event@entry=0x7fffffffbb50) at kernel/qwidget.cpp:9089
#32 0x00007ffff20d0bab in QMainWindow::event(QEvent*) (this=0x7995f0, event=0x7fffffffbb50) at widgets/qmainwindow.cpp:1557
#33 0x00007ffff5cfdcd7 in KMainWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#34 0x00007ffff5d43255 in KXmlGuiWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#35 0x00007ffff7a02983 in KDevelop::MainWindow::event(QEvent*) (this=0x7995f0, ev=0x7fffffffbb50) at /home/midenok/src/kde/kdevelop/stable/kdevplatform/shell/mainwindow.cpp:207
#36 0x00007ffff1fa246c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x65f5b0, receiver=receiver@entry=0x7995f0, e=e@entry=0x7fffffffbb50) at kernel/qapplication.cpp:3717
#37 0x00007ffff1fa9d34 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffdc20, receiver=0x7995f0, e=0x7fffffffbb50) at kernel/qapplication.cpp:3476
#38 0x00007ffff1227de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x7995f0, event=event@entry=0x7fffffffbb50) at kernel/qcoreapplication.cpp:1018
#39 0x00007ffff1fa7c68 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) (event=0x7fffffffbb50, receiver=0x7995f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#40 0x00007ffff1fa7c68 in QApplication::setActiveWindow(QWidget*) (act=act@entry=0x7995f0) at kernel/qapplication.cpp:2128
#41 0x00007ffff1fa7e73 in QApplicationPrivate::notifyActiveWindowChange(QWindow*) (this=<optimized out>, previous=<optimized out>) at kernel/qapplication.cpp:2194
#42 0x00007ffff17e88b5 in QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*) (e=<optimized out>) at kernel/qguiapplication.cpp:2176
#43 0x00007ffff17e8b0d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x2546e70) at kernel/qguiapplication.cpp:1754
#44 0x00007ffff17c0cab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:939
#45 0x00007fffd4c4f5a0 in userEventSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x695300) at qeventdispatcher_glib.cpp:77
#46 0x00007fffe598cfb7 in g_main_dispatch (context=0x7fffcc004fc0) at ../../../../glib/gmain.c:3148
#47 0x00007fffe598cfb7 in g_main_context_dispatch (context=context@entry=0x7fffcc004fc0) at ../../../../glib/gmain.c:3813
#48 0x00007fffe598d1f0 in g_main_context_iterate (context=context@entry=0x7fffcc004fc0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3886
#49 0x00007fffe598d27c in g_main_context_iteration (context=0x7fffcc004fc0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3947
#50 0x00007ffff128047f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x69a490, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#51 0x00007ffff1225e3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffbf00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#52 0x00007ffff122eda4 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1291
#53 0x000000000040dabb in main(int, char**) (argc=1, argv=0x7fffffffdd98) at /home/midenok/src/kde/kdevelop/stable/kdevelop/app/main.cpp:764

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.