Linked by Thom Holwerda on Thu 2nd May 2013 10:15 UTC
BeOS & Derivatives "In the past few weeks, I've managed to find a bit more free time to work on Haiku. As per usual, the lion's share of this time was spent on improving our integrated debugger. As such, I thought I'd give a brief overview of what's been added, and how it can be useful."
Order by: Score:
Metrowerks debugger
by henderson101 on Thu 2nd May 2013 10:58 UTC
henderson101
Member since:
2006-05-30

Oh, how many fun days and nights I spent hunched over my PowerMac sporting a 15" CRT running BeOS, stepping through code in the Metrowerks debugger. I think the BDB was fairly similar on Intel. This looks sweet - very nostalgic for me.

Edited 2013-05-02 10:59 UTC

Reply Score: 4

RE: Metrowerks debugger
by anevilyak on Thu 2nd May 2013 20:40 UTC in reply to "Metrowerks debugger"
anevilyak Member since:
2005-09-14

I would have to admit that my memories of bdb on Intel mostly involve it crashing a lot. Didn't really experience the Metrowerks/PPC side of things myself. Glad you enjoyed that post in any case ;)

Reply Score: 3

RE[2]: Metrowerks debugger
by henderson101 on Fri 3rd May 2013 08:30 UTC in reply to "RE: Metrowerks debugger"
henderson101 Member since:
2006-05-30

Because the PowerPC side of things leveraged the Metrowerks compilers, it was "kind of different" but the same. BDB looked an awful lot like the MW debugger from what I remember. I seem to recall that the later version of BDB was more stable than the one that came with R5, and you needed to download that from Be directly back in the day.

Reply Score: 2

v Debugger
by TempleOS on Thu 2nd May 2013 11:52 UTC
Return values
by biffuz on Thu 2nd May 2013 11:55 UTC
biffuz
Member since:
2006-03-27

Showing return values of called functions is just awesome. Recently I've been using Netbeans and Eclipse (to work on Java, Android and PHP) and neither of them can do that (or perhaps I didn't figure it out yet - I didn't think it was possible, actually).
I have to try this thing out as soon as possible. Sadly, it's been years since I have done some serious work in C++, my favourite language (call me mad).

Reply Score: 3

RE: Return values
by ggeldenhuys on Thu 2nd May 2013 21:38 UTC in reply to "Return values"
ggeldenhuys Member since:
2006-11-13

Delphi's integrated debugger has been doing that for years, and yes it is an awesome feature. I moved to Free Pascal development in recent years, where they use GDB as the debugger. Unfortunately GDB (with the Object Pascal language at least) can't do that either, and it is very frustrating.

Reply Score: 2

RE[2]: Return values
by tylerdurden on Fri 3rd May 2013 06:44 UTC in reply to "RE: Return values"
tylerdurden Member since:
2009-03-17

One of the shortcomings (or features, depending on the perspective) of GDB is that it expects some knowledge of the underlying architecture. On x86, for example, you just need to inspect the content of the EAX register for that context, which should hold the function's return value (in most cases.)

Reply Score: 3

I want my old debuggers back
by Alfman on Thu 2nd May 2013 13:49 UTC
Alfman
Member since:
2011-01-28

Anyone remember borland's dos turbo debuggers? They had the best debuggers by a long shot. It had syntax highlighting, flawless assembly & source code stepping, language variable awareness for watches, even remote debugging. Best of all it was very easy to use. I still curse every time I have to use gdb (even with a front end like 'ddd'), it is horrific. After all these years, I'm still looking for a debugger under linux that's remotely as good, something designed to work with assembly code. Has anyone else found something good?

Reply Score: 5

RE: I want my old debuggers back
by ciplogic on Thu 2nd May 2013 15:20 UTC in reply to "I want my old debuggers back"
ciplogic Member since:
2006-12-22

Yes, there are many debuggers, but for other languages: like Java or C# have both excellent debuggers. If you want a good debugger for C++, GDB sometimes it works well if you use Eclipse's CDT or QtCreator (both offer a good frontend with threads/variables, etc.)

Reply Score: 5

RE: I want my old debuggers back
by acobar on Thu 2nd May 2013 16:20 UTC in reply to "I want my old debuggers back"
acobar Member since:
2005-11-15

If you use kde try kdbg. For usual tasks it works great. There is nemiver for gtk, but I have not used it that much. For binaries there is edb but, frankly, I stopped debbuging binaries years ago.

Anyway, you will find that most IDEs now have integration with gdb (geanny, codeblocks, kdevelop, qt-creator, eclipse and "kate", the last through plugin).

Reply Score: 7

Alfman Member since:
2011-01-28

acobar,

"Anyway, you will find that most IDEs now have integration with gdb (geanny, codeblocks, kdevelop, qt-creator, eclipse and 'kate', the last through plugin)."

It's a good list everyone's coming up with, thanks! I'd never heard of geanny, to be honest I don't want a new editor or IDE. I'd hesitate to use a kate debugger for the same reason, ideally I'd prefer a standalone debugger, much like gdb itself but with a good UI. Never the less I might try some of these text editors to see how suitable they are for debug work. BTW Codeblocks was my favourite of those in your list for C development.

Edit:
Back in the day for windows kernel developement, IDA Pro was pretty good, they're supposed to support linux now, but unless they changed they tarnished the product with DRM and even the starter edition costs a thousand dollars.

Edited 2013-05-02 19:06 UTC

Reply Score: 2

Alfman Member since:
2011-01-28

I found a debugger called "edb".

http://codef00.com/projects#debugger

It's a true standalone assembly debugger. It's got a simplistic feature set, but it works so it's worth adding to the list.

Reply Score: 2

anevilyak Member since:
2005-09-14

Purely out of curiosity, may I ask what it is you work on that requires regularly dealing with assembly?

Reply Score: 2

Alfman Member since:
2011-01-28

anevilyak,

"Purely out of curiosity, may I ask what it is you work on that requires regularly dealing with assembly?"


Actually it's not very regularly. The last all-assembly project I did may have been 5 years ago. Now a days I use it more for microbenchmarking and optimization here and there, specifically in terms of cryptographic function implementations. It's much faster and less error prone to use an assembly debugger to visualize and step through code flows instead of trying to keep track of everything on paper, especially when comparing to code outputted by a compiler.

Reply Score: 3

RE: I want my old debuggers back
by moondevil on Thu 2nd May 2013 17:31 UTC in reply to "I want my old debuggers back"
moondevil Member since:
2005-07-08

Eclipse CDT or QtCreator. It has been a long time since I touched KDevelop, so I don't know how it behaves nowadays.

Having had the chance to start developing software around 1986 while trying out quite a few development environments, I fail to understand how many developers like to develop in UNIX as if they were using System V!

Talk about time travel.

GDB has a very nice feature though, you can use it as a C/C++ REPL while the programming is running.

It was quite helpful in a project where I was doing a lot of low level stuff.

Reply Score: 5

Alfman Member since:
2011-01-28

moondevil,

"Having had the chance to start developing software around 1986 while trying out quite a few development environments, I fail to understand how many developers like to develop in UNIX as if they were using System V!"

Can you clarify what you mean?


"GDB has a very nice feature though, you can use it as a C/C++ REPL while the programming is running."

You could watch & execute expressions in turbo debugger as well, dereference variables from pointers/structures. I cannot recall the full extent of the capability, and anyways it only applied to C & pascal (whereas I was using it more for assembly debugging). I vaguely remember being able to enter new assembly opcodes on the fly, although that might have only been debug.com.


"Eclipse CDT or QtCreator."

I guess it's time for me to try eclipse again, the last time I used it for a work project it was very bloated and slow.

Reply Score: 2

moondevil Member since:
2005-07-08

moondevil,

"Having had the chance to start developing software around 1986 while trying out quite a few development environments, I fail to understand how many developers like to develop in UNIX as if they were using System V!"

Can you clarify what you mean?


I mean using shell + (vi | emacs) is today no different than when I used UNIX for the first time in 1994.

Maybe the only difference is that GNU tools tend to be more user friendly than the POSIX ones, specially in commercial UNIX systems.

Other than that, the setup is still the same.

Whereas a powerful IDE offers code navigation, background compilation, static analysis while you type, graphical display of data structures, semantic refactoring and many other things.

"GDB has a very nice feature though, you can use it as a C/C++ REPL while the programming is running."

You could watch & execute expressions in turbo debugger as well, dereference variables from pointers/structures. I cannot recall the full extent of the capability, and anyways it only applied to C & pascal (whereas I was using it more for assembly debugging). I vaguely remember being able to enter new assembly opcodes on the fly, although that might have only been debug.com.


I used up to Turbo Pascal for Windows 1.5 and Turbo C++ for Windows 3.1, and don't remember a REPL like functionality, then again, maybe I just missed it.

"Eclipse CDT or QtCreator."

I guess it's time for me to try eclipse again, the last time I used it for a work project it was very bloated and slow.


I like CDT's CODAN, makes C feel like Pascal, in terms of safety.

Reply Score: 3

RE: I want my old debuggers back
by linux-lover on Thu 2nd May 2013 23:51 UTC in reply to "I want my old debuggers back"
linux-lover Member since:
2011-04-25

Have you tried the cgdb frontend? http://cgdb.github.io/

Reply Score: 3

Alfman Member since:
2011-01-28

linux-lover,

"Have you tried the cgdb frontend? http://cgdb.github.io/"

No I had not, if it works well that could permanently replace all my use cases for ever invoking gdb directly. I'm not particularly fond of having to type gdb commands into a debugger, but maybe I am biased towards the interfaces I learned with.

Reply Score: 2

tylerdurden Member since:
2009-03-17

... that is a common occurrence, we tend to associate the first tool we learn with the "essence" of the task.

Reply Score: 3

Comment by Luke McCarthy
by Luke McCarthy on Thu 2nd May 2013 18:52 UTC
Luke McCarthy
Member since:
2005-07-06

This makes me want to switch to Haiku just so I can use this debugger.

Reply Score: 3

RE: Comment by Luke McCarthy
by anevilyak on Thu 2nd May 2013 20:41 UTC in reply to "Comment by Luke McCarthy"
anevilyak Member since:
2005-09-14

Thanks! I would have to caution that there are still quite a few things left to do feature-wise, though I'd like to think it's generally day-to-day usable at this point.

Edited 2013-05-02 20:41 UTC

Reply Score: 2

X11 "gui" debugger for C/C++/etc - "ups"
by userw014 on Thu 2nd May 2013 20:24 UTC
userw014
Member since:
2010-11-05

I used 'ups" to work on a debugging network daemons (in particular, Merit Computer Network's RADIUS server, based on the Livingston code). It offered a very nice way to view the code and step through it, etc. as you would expect a debugger to do, and to hold various various variables (including structures) in view at the same time.

Since I haven't done C/C++ coding on that scale (several hundred thousand lines of code) for network daemons for some time, I've been satisfied with "gdb" when I need to.

Most of my coding since then has been without the aid of debugging tools since it's involved scripted languages from web servers, cron jobs, etc. where I can't attach a debugger and have to suffer with the equivalent of scattering "printf" statements through the code, guarded by a "debug_level" variable. (Sad and tedious.) I miss "ups".

Reply Score: 2

acobar Member since:
2005-11-15

Most of my coding since then has been without the aid of debugging tools since it's involved scripted languages from web servers, cron jobs, etc. where I can't attach a debugger ...


Actually, you can, but, as with all regular debugging, you will need a cup of coffee to bear the slowness of the process. If you use bash, there is bashdb. From the same author there is a debugger for perl and links on bashdb site to a ruby debugger. PHP has some debuggers as also Python so, actually, there is a chance you will be served by a debugger for your language of choice.

Regardless, I find it really handy to have "print/echo" macros on the critical parts of my code, no matter what was used. As developers, most of the times we have a good insight on where things can go wrong and start to wreak havoc. For me it is usually faster this way to spot, or at least narrow the boundaries of, where things got crazy.

Reply Score: 3