working on "duff" example led me to futzing with gdb, found out the gdb tutorial is kinda (a lot) outdated

This commit is contained in:
Dan Buch
2011-06-19 18:27:45 -04:00
parent b95730410b
commit 2f315a6353
8 changed files with 135 additions and 1 deletions

14
gdbtut/Makefile Normal file
View File

@@ -0,0 +1,14 @@
# tutorial exercises from http://www.unknownroad.com/rtfm/gdbtut/
BINDIR := $(PWD)/bin
export BINDIR
all:
$(CD) src && $(MAKE)
clean:
$(RM) $(BINDIR)/*
.PHONY: all clean

0
gdbtut/bin/.keep Normal file
View File

12
gdbtut/src/Makefile Normal file
View File

@@ -0,0 +1,12 @@
# tutorial exercises from http://www.unknownroad.com/rtfm/gdbtut/
ALL_BIN := $(patsubst %.c,$(BINDIR)/%,$(wildcard *.c))
$(BINDIR)/%: %.c
$(CC) $(CFLAGS) -o $@ $<
all: $(ALL_BIN)
.PHONY: all

28
gdbtut/src/segfault.c Normal file
View File

@@ -0,0 +1,28 @@
/**
* :author: Dan Buch (daniel.buch@gmail.com)
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char *buf;
long long huge = 8000000000000000000;
/* Okay, so this is *not* going to segfault because
* the way memory is allocated has changed since
* the tutorial was written. The segfault is supposed
* to happen when more memory is allocated than is
* available on the machine. So much for that exercise.
*/
buf = malloc(huge);
fgets(buf, 1024, stdin);
printf("%s\n", buf);
return 1;
}
/* vim:filetype=c:fileencoding=utf-8
*/