Added automatic backtracing via RegisterStacktrace in Backtrace. Added a simple hello world demo that just throws up a window. Started working on TileSet again and skeletoned a demo for it.

This commit is contained in:
2011-06-19 14:36:21 +00:00
parent 1cdf80aab6
commit f62a36e1c6
35 changed files with 22529 additions and 53 deletions

98
demo/backtrace/Makefile Executable file
View File

@@ -0,0 +1,98 @@
# This makefile is a bit hackish. I wrote it early in the AM.
# Fohgiveuhness, please!!
ifndef $(CFG)
CFG=Debug
endif
# you can also pass : mingw32 and macosx
ifndef $(OS)
OS=linux
endif
TARGET=demo
BINTARGET=$(TARGET)
PROJECTHOME=$(shell pwd)
SDL_CFLAGS=$(shell sdl-config --cflags)
SDL_LDFLAGS=$(shell sdl-config --libs)
LIBDIR=/usr/lib
HEADERDIR=/usr/include
ADDL_CFLAGS=
ifeq "$(OS)" "mingw32"
ADDL_CFLAGS=-mwindows -DBUILD_MINGW32 -rdynamic
endif
ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
endif
# default for release configs
ifeq "$(CFG)" "Release"
OUTDIR=Release
ifeq "$(OS)" "mingw32"
BINTARGET=$(TARGET).exe
else
BINTARGET=$(TARGET)
endif
LINKLIB=sdlgame
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif
ifeq "$(CFG)" "Debug"
OUTDIR=Debug
ifeq "$(OS)" "mingw32"
BINTARGET=$(TARGET)-dbg.exe
else
BINTARGET=$(TARGET)-dbg
endif
LINKLIB=sdlgame-dbg
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o
ifeq "$(OS)" "mingw32"
BTOBJ=$(OUTDIR)/backtrace.dll
endif
CC = gcc
CXX = g++
LD = $(CXX)
INSTALL = $(which install)
$(OUTDIR)/%.o : cpp/%.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
all: bin
.PHONY: $(BTOBJ)
$(BTOBJ):
cp /usr/local/lib/backtrace.dll $(OUTDIR)/
cp /usr/local/lib/av*dll $(OUTDIR)/
cp /usr/local/lib/swscale*dll $(OUTDIR)/
cp /usr/local/bin/*SDL*dll $(OUTDIR)/
cp /usr/local/bin/freetype*dll $(OUTDIR)/
cp /usr/local/bin/*png*dll $(OUTDIR)/
cp /usr/local/bin/*jpeg*dll $(OUTDIR)/
cp /usr/local/bin/libimage*dll $(OUTDIR)/
cp /usr/local/bin/libogg*dll $(OUTDIR)/
cp /usr/local/bin/*vorbis*dll $(OUTDIR)/
cp /usr/local/bin/librle*dll $(OUTDIR)/
cp /usr/local/bin/libtiff*dll $(OUTDIR)/
cp /usr/local/bin/libxml2*dll $(OUTDIR)/
cp /usr/local/bin/zlib*dll $(OUTDIR)/
bin: $(BINOBJ) $(BTOBJ)
$(LD) -pg -o $(OUTDIR)/$(BINTARGET) \
-pg $(BINOBJ) $(LINKLIBS)
.PHONY: clean
clean:
rm -f $(OUTDIR)/*
.PHONY: rebuild
rebuild:
make clean
make CFG=$(CFG)

28
demo/backtrace/cpp/demo.cpp Executable file
View File

@@ -0,0 +1,28 @@
/*
* This demo starts up and intentionally crashes itself to prove the backtrace stuff works
*/
#include <libsdlgame/libsdlgame.h>
class Object {
private:
int *x;
public:
int crashme(void);
};
int Object::crashme(void)
{
this->x = 0;
return *(this->x);
}
int main(int argc, char *argv[])
{
RegisterStacktrace();
// We don't initialize anything here because we would lose the memory
Object x;
x.crashme();
return 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
demo/backtrace/gmon.out Executable file

Binary file not shown.

7285
demo/backtrace/map.tmx Executable file

File diff suppressed because it is too large Load Diff