Linked by Thom Holwerda on Tue 28th Aug 2012 19:20 UTC, submitted by MOS6510
General Development "Coming from a background in higher-level languages like Ruby, Scheme, or Haskell, learning C can be challenging. In addition to having to wrestle with C's lower-level features like manual memory management and pointers, you have to make do without a REPL. Once you get used to exploratory programming in a REPL, having to deal with the write-compile-run loop is a bit of a bummer. It occurred to me recently that I could use gdb as a pseudo-REPL for C. I've been experimenting with using gdb as a tool for learning C, rather than merely debugging C, and it's a lot of fun. My goal in this post is to show you that gdb is a great tool for learning C. I'll introduce you to a few of my favorite gdb commands, and then I'll demonstrate how you can use gdb to understand a notoriously tricky part of C: the difference between arrays and pointers."
Thread beginning with comment 532948
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Not REPL
by ndrw on Wed 29th Aug 2012 10:21 UTC in reply to "RE: Not REPL"
ndrw
Member since:
2009-06-30

It may look like "pseudo-REPL" but it just isn't one. Not even "pseudo". The whole point of REPL is that you write your program in it, and you get an incremental feedback as you do it. Think of it as of an IDE on steroids (one that really understands and executes your code). You simply can't do that in Gdb at all. Yes, you can analyze the program, but if you want to make any changes you have to go back to your editor and build system.

Reply Parent Score: 1

RE[3]: Not REPL
by kwan_e on Wed 29th Aug 2012 11:29 in reply to "RE[2]: Not REPL"
kwan_e Member since:
2007-02-18

It may look like "pseudo-REPL" but it just isn't one. Not even "pseudo". The whole point of REPL is that you write your program in it, and you get an incremental feedback as you do it. Think of it as of an IDE on steroids (one that really understands and executes your code). You simply can't do that in Gdb at all. Yes, you can analyze the program, but if you want to make any changes you have to go back to your editor and build system.


That's what makes it pseudo. Why don't you read the article? He's not proposing to write programs with it. He's proposing using GDB, in analyzing the program, to simulate the feedback you can get from an REPL language. Not that it is one. Therefore: PSEUDO.

Reply Parent Score: 3

RE[4]: Not REPL
by ndrw on Wed 29th Aug 2012 11:53 in reply to "RE[3]: Not REPL"
ndrw Member since:
2009-06-30

If you can't type C code in it and have it evaluated then it isn't a REPL. It is as simple as that.

Yes, it is a REPL for a Gdb command language, which happens to mimic some primitive C operations (arithmetic, pointer dereferencing). But Gdb is not C.

I do agree that Gdb is a useful tool for analyzing programs (that's what I wrote in the first comment) but it just isn't a REPL for C, for any value of "pseudo".

Reply Parent Score: 1