Hi,
Ok...I think ive found the problem. Its to do with memory!
On debugging it seems to break on:
void* MemoryManagerImpl::allocate(size_t size)
{
void* memptr;
try {
memptr = ::operator new(size);
My debugger breaks ar memptr..
Hmm...Ive honestly got no idea how to fix this
-Alex
appleGuy wrote:
>
> Ok, Ill see what turns up.
>
> Most (if not all) of the parsing code is not in the constructor. Its in a
> seperate function, that is independant of the constructor.
>
> Cheers
> Alex
>
>
> Jesse Pelton wrote:
>>
>> You might want to start by trapping all the exceptions that parse() can
>> generate. DOMException, OutOfMemoryException, and (I think)
>> SAXException are all possibilities that you haven't covered. Using the
>> getMessage() member to display the exception message may well be
>> revealing.
>>
>> Personally, I'd think twice before implementing a constructor that does
>> so much work. Handling exceptions properly in constructors is
>> notoriously difficult, and this one is rife with opportunities for
>> error.
>>
>> -----Original Message-----
>> From: appleGuy [mailto:[EMAIL PROTECTED]
>> Sent: Wednesday, December 20, 2006 12:05 PM
>> To: [email protected]
>> Subject: Error In Code (Sax Parsing)
>>
>>
>> Hi,
>>
>> My program generates a runtime error...I went through the debugger & it
>> seems to break at the parser->parse(XMLfile)
>>
>> The error is:
>>
>> Debug Error!....this application has requested the runtime to terminate
>> in
>> an unusual way
>>
>> The code with problems:
>>
>> #include "prjLoad.h"
>>
>> //DEBUG
>> #include <iostream>
>> using namespace std;
>>
>> //Default Constructor
>> prjLoad::prjLoad(prjHandler *ptr_tmp): prjHandle(ptr_tmp){
>> loadXML_prj("xml_file.xml");
>> }
>>
>> //Destructor
>> prjLoad::~prjLoad(void){
>> //Terminate The Dom Session
>> XMLPlatformUtils::Terminate();
>> }
>>
>> bool prjLoad::loadXML_prj(char *prj_filename){
>> //Start XML Xerces Framework
>> try {
>> XMLPlatformUtils::Initialize();
>> }
>> catch (const XMLException& toCatch) {
>> char* message = XMLString::transcode(toCatch.getMessage());
>> cout << "Error during initialization! :\n"
>> << message << "\n";
>> XMLString::release(&message);
>> return false;
>> }
>>
>> //Create New Parser (SAX)
>> SAXParser* parser = new SAXParser();
>>
>> //File Input Validation
>> parser->setDoValidation(true);
>> parser->setDoNamespaces(true);
>>
>> //Create our SAX handler object and install it on the
>> parser (Doc & Error
>> Handler)
>> //Using Project as Handler
>> parser->setDocumentHandler(prjHandle);
>> parser->setErrorHandler(prjHandle);
>>
>> //Load File through Xerces
>> XERCES_STD_QUALIFIER ifstream xmlFileHandle;
>> xmlFileHandle.open(prj_filename);
>>
>> //Load Each Line From File To Array xmlFile
>> bool flag = true;
>> while (flag == true)
>> {
>> char token[1000];
>> //Set array to zeros
>> memset(token,0,sizeof(token));
>>
>> //Sequential Search
>> if(!(xmlFileHandle.eof())){
>> xmlFileHandle.getline(token, sizeof(token));
>>
>> //Check If Line Contains Anything
>> if(!(token))
>> continue;
>> else {
>> //Load into New Derived Variable for
>> overloading & Safety
>> const char *XMLfile = token;
>>
>> //Debug
>> cout << "Parsing: " << XMLfile << endl;
>>
>> //ERROR WIPE -> NEEDS IMPLIMENTING
>>
>> try {
>> parser->parse(XMLfile);
>> }
>> catch(XMLException &e){
>> cout << "ERROR OCCURED" << endl;
>> }
>>
>> }
>>
>>
>> }
>> //ELSE STATEMENT FOR EOF-> Set Flag to false therefore
>> exiting while loop
>> else
>> flag = false;
>>
>>
>> }
>> return true;
>> }
>>
>> Thanks For looking at this its been bugging me for hours
>>
>> Cheers
>> -Alex
>> --
>> View this message in context:
>> http://www.nabble.com/Error-In-Code-%28Sax-Parsing%29-tf2860959.html#a79
>> 93779
>> Sent from the Xerces - C - Users mailing list archive at Nabble.com.
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Error-In-Code-%28Sax-Parsing%29-tf2860959.html#a7994656
Sent from the Xerces - C - Users mailing list archive at Nabble.com.