KDbg - A Graphical Debugger Interface

Web Name: KDbg - A Graphical Debugger Interface

WebSite: http://www.kdbg.org

ID:241378

Keywords:

Graphical,KDbg,Interface,Debugger,KDbggraphicaldebuggerinterfacegdbbreakpoint

Description:

keywords:KDbg graphical debugger interface gdb breakpoint
description:KDbg is a graphical user interface to gdb, the GNU debugger.It provides an intuitive interface for setting breakpoints,inspecting variables, and stepping through code.

KDbg

A Graphical Debugger Interface

What is KDbg?

KDbg is a graphical user interface to gdb, the GNU debugger. Itprovides an intuitive interface for setting breakpoints, inspectingvariables, and stepping through code.

KDbg requires KDE, the K DesktopEnvironment, but you can of course debug any program.

Features

Inspection of variable values in a tree structure.

Direct member: For certain compound data types the most important member values are displayed next to the variable name, so that it is not necessary to expand the subtree of that variable in order to see the member value. For example, you don't need to go into a variable of type QString if you want to see the string that the variable holds. (BTW, this is of course not hardcoded, but can be extended to new types.) KDbg can even display Qt's QString values, which are Unicode strings.

Debugger at your finger tips: The basic debugger functions (step, next, run, finish, until, set/clear/enable/disable breakpoint) are bound to function keys F5 through F10. Quick and easy.

Of course, lots of other basic functions: View source code, search text, set program arguments and environment variables, display arbitrary expressions. Everything you need to debug a program!

Debugging of core dumps, attaching to running processes is possible.

Conditional breakpoints.

If you are missing your favorite feature, see the todo-listwhether I plan to add it.Drop me a noteif you can't find it!

Author

KDbg is authored by Johannes Sixt.

ScreenshotsThe Main Window

The largest subwindow of the this screenshot is the source code.Below the breakpoint list is visible.The right column shows local variables, watched expressions, and the thread list(from top to bottom).

To the left of the lines of source code the breakpointsas well as the current point of execution are indicated. You see differentkinds of breakpoints: normal, disabled, temporary.

Clicking the small '+' signs in front of the source code lines willdisplay the machine code of the source line.

Variables and Watches

This screen shot shows the local variables (of the current stack frame)and arbitrary watch expressions side by side. Notice that the contentsof certain class members are displayed next to the variable, in this caseof type QString, although the variable is not expanded. Variablesthat have changed since the last stop are indicated in red color.

DownloadDownload Source Code

Click here to downloadthe source code of KDbg 3.0.1 - stable version (from SourceForge.net).

Consider joining the KDbgmailing list.

Download via git

KDbg development uses git.To clone the git repository, do this, which you need to do only once:

git clone -b maint https://github.com/j6t/kdbg.git

This will create a new directory kdbg in your current directorythat contains the entire development history.It will follow the stable branch of KDbg. If you already have done this in the past,you can download the latest stable version with this command:

git pull origin maint

You can also browsethe project history.

Compile and Install

Compiling is straight forward. Extract the source archive, then goto the newly created directory and type:

cmake .
make
sudo make install

It is necessary that you have the KDE header files and librariesinstalled. Some distributions do not automatically install the headerfiles. Please make sure that you installed them. It may also benecessary to explicitly tell the location of KDE, e.g.:

cmake -DCMAKE_INSTALL_PREFIX=/opt/kde4 .

Download Binaries

Official Debian packages are available fromhttps://packages.debian.org/kdbg.(Special thanks go to Ana Guerrero!)

Development version

A new development cycle is maintained in the GIT repository, in the branch master.To download it, you need git.To clone this branch of the git repository, do this, which you need to do only once:

git clone https://github.com/j6t/kdbg.git

This will automatically set up your working directory to follow the developmentbranch master. If you already have done this in the past,you can download the development version with this command:

git pull

Contributing

Contributions are, of course, always welcome.If you have a favorite patch, just send it to me (see footer for email address).But if you have a more voluminous change that you want to have included,you better use git.Please fork the repository at Githuband file a pull request.

Recent Changes

Release notes for version 3.0.1.

Release notes for version 3.0.0.

Release notes for version 2.9.1.

Release notes for version 2.9.0.

Release notes for version 2.5.6.

Release notes for version 2.5.5.

Release notes for version 2.5.4.

Release notes for version 2.5.3.

Release notes for version 2.5.2.

Release notes for version 2.5.1.

Release notes for version 2.5.0.

Tips Tricks

For more tips see the online documentation.

Displaying variable values in different formats

You can use gdb's format specifiers for displaying values in the expressionwatch window in different formats. Just prefix the expression to displayby the format specifier. Example: /x foo->bar will display thevalue of foo->bar in hexadecimal notation. Here is a list of gdb'sformat specifiers:

/xhexadecimal/ffloat/ooctal/aaddress/ddecimal/iinstruction/uunsigned decimal/cchar/tbinary/sstringSetting breakpoints in dynamically loaded modules

The problem with dynamically loaded modules is that the debugger doesn'tknow about the symbol information until the module has been loaded by dlopen().This is extremely annoying if you want to debug constructors that are runfor static variables. The following trick works on systems that use glibc2.

Set a breakpoint that the program will hit before it loads the dynamicmodule, e.g. in main.Run the program until it stops at this breakpoint.Now you can set a breakpoint in the function _dl_debug_state.For this, open the breakpoint list (View|Breakpoints),Type _dl_debug_state in the edit box and clickAdd.Continue the program until it stops at this breakpoint, which happens somewhereinside dlopen()! At this time, the symbols of the dynamic moduleare already available, but the constructors are not yet executed.Now you can set a breakpoint in your constructor.Be preparedthat the breakpoint at _dl_debug_state will be hit several timeswhile dlopen() does its work.

Note that the orphaned breakpoints featuredoes not really help. The reason is that orphaned breakpoints are not tried to beinstalled until the program stops. For this reason it is still required to setthe breakpoint in _dl_debug_state. However, the breakpoints arepreserved and can be set at any time, even before the program starts.

Remote debugging

There's a hack so you can do remote debugging. Invoke kdbg likethis:

kdbg -r /dev/ttya proggy

Then KDbg issues the following gdb commands, in effect, it allows you todebug a remote target:

target remote /dev/ttya
file proggy

As you see, you could also do remote debugging through TCP/IP connectionlike this:

kdbg -r flaky:12345 proggy

assuming host flaky is running gdbserver with proggy on port 12345.

Note that you can set a program specific gdb commandusing the Settings|This Program menu.

To do

The following is a list of things that I intend to build in some day. Theyare roughly sorted most important first. You can influence the order bydropping me a noteor by building it in yourself and sending me the patch :-).There is also a TODO file in the source code which lists many more items.

Display a list of files that the program is built from.Manipulating signals and how gdb handles them.Remember which structures were expanded.

The following is a list of things that are not very likely ever to findtheir way into KDbg.

Direct access to gdb. That is, you can't type in a gdb command and submitit to gdb. The most direct access you get is the argument to a printcommand: through the variable watches. The idea is that every feature ofgdb is accessible by some user interface element.A graphical display like DDDhas.

Last modified January 1, 2020

TAGS:Graphical KDbg Interface Debugger KDbggraphicaldebuggerinterfacegdbbreakpoint

<<< Thank you for your visit >>>

KDbg is a graphical user interface to gdb, the GNU debugger.It provides an intuitive interface for setting breakpoints,inspecting variables, and stepping through code.

Websites to related :
RealTimeDesigner - The fully cus

  keywords:
description:RealTimeDesigner the fully customizable online design perfect for banners, t-shirts, signs, mugs and more.

Intersoft Solutions - The leadin

  keywords:Mobile Development, iOS, Android, Windows Phone, Windows Store, Cross Platform, .NET, ASP.NET, .NET Components, ASP.NET Components, Silverlig

Interface Learning

  keywords:
description:

The Logical Interface: Science l

  keywords:Science laboratory equipment Science software
description:
1 2 3 4 5

Rme-audio : Home - RME Audio Int

  keywords:rme-audio.de, Rme-audio, seo stats, traffic, worth, keywords, analysis
description:Rme-audio at WO. RME Audio Professional Live, Studio, Reco

Rme-audio : Home - RME Audio Int

  keywords:
description:RME Audio Professional Live, Studio, Recording and Broadcast Solutions. Unrivalled Quality, Performance & Stability MADI Interfa

Axxess Integrate - Comprehensive

  keywords:
description:For over 70 years, Axxess Integrate has developed innovative, time saving solutions to help installers connect aftermarket elect

Biographical Highlights & Signif

  keywords:Mitt,Romney,News,Facts,biography,bio,issues,bain
description:Facts with quotes & links on: economic, healthcare, gun-rights, gay-issues, terr

Welcome to The Internet's Premie

  keywords:
description:Welcome to ElectronDepot.com, the Internet's premiere Web, RSS and Social Media interface to Usenet groups for the electronics e

EduPic Graphical Resource for Ed

  keywords:Image, Photograph, Picture, Photo, Science, Science Images, Science Pictures, Science Drawings, Flowers, Cells, Measurement, Insects, Organis

ads

Hot Websites