Open main menu

CDOT Wiki β

BTP300B A2 Team 1 Bugs Report

Revision as of 14:29, 26 October 2013 by Harawasia (talk | contribs)

Huda's Bug Log
========================

  • Oct 7 - Received Dennis' copy of the assignment which he implemented the basic idea of the CFrame class. Compiling with a2test.cpp gives significant amount of errors related to namespace issue even though its in both .cpp file and .h files for CFrame class and also getting other errors. However, tried to fix the following:


Error #1:


In file included from iframe.h:11:0,
from consoleplus.h:10,
from consolelineedit.cpp:9:
cfg.h:8:0: warning: "NULL" redefined [enabled by default]
/usr/lib/gcc/i586-suse-linux/4.6/include/stddef.h:399:0: note: this is the location of the previous definition


FIX:

#ifndef NULL
#define NULL (void*)0 // - the NULL address if it has not been defined ((void*)0)
#endif


Error #2:

In file included from CFrame.cpp:3:0:
consoleplus.h:23:42: error: âCDirectionâ has not been declared
In file included from consolebackup.cpp:11:0:
consoleplus.h:23:42: error: âCDirectionâ has not been declared
In file included from consolelineedit.cpp:9:0:
consoleplus.h:23:42: error: âCDirectionâ has not been declared


FIX:

Added using namespace cio{ } in both consolelineedit.cpp file, consoleplus.h file


Error #3:

/tmp/ccuqzVeu.o: In function `testFrame()':
a2test.cpp:(.text+0x115): undefined reference to `cio::CFrame::draw(int)'
a2test.cpp:(.text+0x128): undefined reference to `cio::CFrame::draw(int)'
a2test.cpp:(.text+0x1d6): undefined reference to `cio::CFrame::draw(int)'
a2test.cpp:(.text+0x221): undefined reference to `cio::CFrame::~CFrame()'
a2test.cpp:(.text+0x22c): undefined reference to `cio::CFrame::~CFrame()'
a2test.cpp:(.text+0x237): undefined reference to `cio::CFrame::~CFrame()'
a2test.cpp:(.text+0x24d): undefined reference to `cio::CFrame::~CFrame()'
a2test.cpp:(.text+0x25c): undefined reference to `cio::CFrame::~CFrame()'
/tmp/ccuqzVeu.o:a2test.cpp:(.text+0x26b): more undefined references to `cio::CFrame::~CFrame()' follow
collect2: ld returned 1 exit status


Before the Fix:

void draw(int fn = C_FULL_FRAME) {}

and we had a "normal" destructor :

~CFrame();


Fix for Error #3:

1. Changed draw from normal function to a virtual function

void CFrame::draw(int fn ) {}

2. added empty destructor definition


  • Sent the clean version of assignment back to the team (but compiles with errors on VS).
  • Oct 19 - Received another revised version of assignment from Dennis.
  • Oct 26 - we were literally stuck and were encountering an error which Shianne fixed, but was still failing with errors on Linux. I looked into the error which was

g++ CFrame.cpp a2test.cpp console.cpp consolebackup.cpp consolelineedit.cpp -lncurses
a2test.cpp: In function âint main()â:
a2test.cpp:78:73: warning: deprecated conversion from string constant to âchar*â [-Wwrite-strings]
/tmp/ccTRS5S7.o: In function `testFrame()':
a2test.cpp:(.text+0x3f1): undefined reference to `cio::move(cio::iFrame&)'
collect2: ld returned 1 exit status

Because of the following code

void move(cio::CFrame& x);

The fix was easy (but hard to find at first). This was the fix:

void move(cio::iFrame& x);



Dennis's Bug Log
========================


Shianne's Bug Log
========================