Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617

Hello All,

I am trying to convert one of the tool code independent of the configuration file(INI).  But I am facing few problems in that.

First I am getting the following error in the DXL window:

-R-E- DXL: <Line:980> An unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617

Backtrace:
    <Line:3150>
    <Line:3523>
    <Line:3563>
    <Line:3691>

There are currently only two working functionalities in the code: Attribute Checker,Feature Master Statistics and Modification Enabled.

Moreover the I have only changed the following functions from the previous working code and the current one. The following functions have been changed from the previous which was fetching the module names from configuration file.

functionCall() - Function from where the function has been called.

newread_config_file - Function from where the modules are read

replaced with the new functions like functionCall_modified and read_UpGen6Modules.

I have attached both the codes. Kindly help me out.

 

 

 


KBSri - Thu Jan 29 07:27:57 EST 2015

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
GregM_dxler - Thu Jan 29 16:01:42 EST 2015

Let's see, posting a 3700 line code and asking someone else to debug... for free!

The error and the code doesn't seem to match since the lines don't look right.

Might be lines 2899 value_attribute_domain = replace_newline(obj.attribute_domain"") and 

328 value_attribute_domain = replace_newline(obj.attribute_domain"")

you should put a space between attribute_domain and "" since there is no variable named attribute_domain"".

Try that and see if it fixes your problem.

Check line 2062, the 12 doesn't look right.

Check for missing closing parenthesis for the if in line 3381.

Hope this helps,

Greg

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
KBSri - Fri Jan 30 00:07:11 EST 2015

GregM_dxler - Thu Jan 29 16:01:42 EST 2015

Let's see, posting a 3700 line code and asking someone else to debug... for free!

The error and the code doesn't seem to match since the lines don't look right.

Might be lines 2899 value_attribute_domain = replace_newline(obj.attribute_domain"") and 

328 value_attribute_domain = replace_newline(obj.attribute_domain"")

you should put a space between attribute_domain and "" since there is no variable named attribute_domain"".

Try that and see if it fixes your problem.

Check line 2062, the 12 doesn't look right.

Check for missing closing parenthesis for the if in line 3381.

Hope this helps,

Greg

Hello Greg,

Thanks for your suggestions. Yes the actual line where I get the error is below:

-R-E- DXL: <Line:971> An unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617

Backtrace:
    <Line:3141>
    <Line:3514>
    <Line:3553>
    <Line:3681>

The line 971 points to the line:   for skip_key in check_skip do which is in below function.

//This function checks if a skip list is empty or not
//***************************************************
int skip_existData(Skip check_skip)
{
    string skip_key
    for skip_key in check_skip do
    {
        return 1    
    }
    return 0
}

 

 

I have already written new functions for the code. I am just calling that function instead of an old one. Basically it should work I am not sure why it is not.

Please help me out.

 

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Wolfgang Uhr - Fri Jan 30 03:24:18 EST 2015

KBSri - Fri Jan 30 00:07:11 EST 2015

Hello Greg,

Thanks for your suggestions. Yes the actual line where I get the error is below:

-R-E- DXL: <Line:971> An unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617

Backtrace:
    <Line:3141>
    <Line:3514>
    <Line:3553>
    <Line:3681>

The line 971 points to the line:   for skip_key in check_skip do which is in below function.

//This function checks if a skip list is empty or not
//***************************************************
int skip_existData(Skip check_skip)
{
    string skip_key
    for skip_key in check_skip do
    {
        return 1    
    }
    return 0
}

 

 

I have already written new functions for the code. I am just calling that function instead of an old one. Basically it should work I am not sure why it is not.

Please help me out.

 

Hi

If skip_existData crashes, I'll assume, that you have forgotten to initialize the skip list?

Best regards

Wolfgang

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Mike.Scharnow - Fri Jan 30 03:30:28 EST 2015

KBSri - Fri Jan 30 00:07:11 EST 2015

Hello Greg,

Thanks for your suggestions. Yes the actual line where I get the error is below:

-R-E- DXL: <Line:971> An unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617

Backtrace:
    <Line:3141>
    <Line:3514>
    <Line:3553>
    <Line:3681>

The line 971 points to the line:   for skip_key in check_skip do which is in below function.

//This function checks if a skip list is empty or not
//***************************************************
int skip_existData(Skip check_skip)
{
    string skip_key
    for skip_key in check_skip do
    {
        return 1    
    }
    return 0
}

 

 

I have already written new functions for the code. I am just calling that function instead of an old one. Basically it should work I am not sure why it is not.

Please help me out.

 

Well, let me guess:

If you get a problem in this line, there is something like an undefined value in your skip list which does not point to a string value. At the moment this line is executed, DXL wants to put the value into the string variable skip_key.  No valid string there -> boom.

skip_existData is only called with the skip attribute_checker_findings

I notice that the key of this Skip is >pre_absno key_counter ""<, which is a string, but you create your Skip by using "create" instead of "createString". This should be fixed first.

Then I notice that the only line where you put something into this skip is line 2062. This line does look correct, but if "createString" does not help, I would think about using different characters for separating your values. It may happen that this file is not stored as UTF-8 and that your separators are not stored correctly.

Hope this helps,
Mike

 

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Wolfgang Uhr - Fri Jan 30 03:38:09 EST 2015

Mike.Scharnow - Fri Jan 30 03:30:28 EST 2015

Well, let me guess:

If you get a problem in this line, there is something like an undefined value in your skip list which does not point to a string value. At the moment this line is executed, DXL wants to put the value into the string variable skip_key.  No valid string there -> boom.

skip_existData is only called with the skip attribute_checker_findings

I notice that the key of this Skip is >pre_absno key_counter ""<, which is a string, but you create your Skip by using "create" instead of "createString". This should be fixed first.

Then I notice that the only line where you put something into this skip is line 2062. This line does look correct, but if "createString" does not help, I would think about using different characters for separating your values. It may happen that this file is not stored as UTF-8 and that your separators are not stored correctly.

Hope this helps,
Mike

 

Hello Mike

> If you get a problem in this line, there is something like an undefined value in your skip list which does not point to a string value.

That is normally not a problem als long as you do not use "skip_key"

Actually my "skip_existData"-routine returns a boolean but the rest is the same code.

Allthough despite some exceptions there is no reason to use such a function. If the skip list is empty the inner for-loop is never used

for skip_key in check_skip do {
  ....
}

Best regards

Wolfgang

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Mike.Scharnow - Fri Jan 30 04:00:03 EST 2015

Wolfgang Uhr - Fri Jan 30 03:38:09 EST 2015

Hello Mike

> If you get a problem in this line, there is something like an undefined value in your skip list which does not point to a string value.

That is normally not a problem als long as you do not use "skip_key"

Actually my "skip_existData"-routine returns a boolean but the rest is the same code.

Allthough despite some exceptions there is no reason to use such a function. If the skip list is empty the inner for-loop is never used

for skip_key in check_skip do {
  ....
}

Best regards

Wolfgang

Hello Wolfgang,

thanks for the clarification -- In any other language I would also have assumed that if the variable is not used, it makes no problem. But with DXL, I never really know what happens... but good to know that this method is safe.

Let's have a look about initializing the skip. Unfortunately the backtrace that KBSri posted still does not fit with the file Current_without_config.dxl.

skip_existData called in line 3141 of function reporting_function
reporting_function is called in line 3514 of function run_tool
run_tool is called in line 3553 of function functionCall_modified
functionCall_modified is called in line 3681 of function GUI_validate
GUI_validate is called in the main program, line 3695

attribute_checker_findings is set to null in the main program, line 184.
It is initialized ("create") in line 2759 of function init_var.
init_var is called in line 3554 of functionCall_modified. --> too late!!

 

So, Wolfgang, you are right. skip_existData is called at the time when the Skip is null.


 

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Wolfgang Uhr - Fri Jan 30 04:08:27 EST 2015

Mike.Scharnow - Fri Jan 30 04:00:03 EST 2015

Hello Wolfgang,

thanks for the clarification -- In any other language I would also have assumed that if the variable is not used, it makes no problem. But with DXL, I never really know what happens... but good to know that this method is safe.

Let's have a look about initializing the skip. Unfortunately the backtrace that KBSri posted still does not fit with the file Current_without_config.dxl.

skip_existData called in line 3141 of function reporting_function
reporting_function is called in line 3514 of function run_tool
run_tool is called in line 3553 of function functionCall_modified
functionCall_modified is called in line 3681 of function GUI_validate
GUI_validate is called in the main program, line 3695

attribute_checker_findings is set to null in the main program, line 184.
It is initialized ("create") in line 2759 of function init_var.
init_var is called in line 3554 of functionCall_modified. --> too late!!

 

So, Wolfgang, you are right. skip_existData is called at the time when the Skip is null.


 

> So, Wolfgang, you are right. skip_existData is called at the time when the Skip is null.

Thats the reason why I never use a null for a skip list. A skip list is allways initialized and an empty list only contains no elements.

And instead of deleting a skip list, it is much more efficient, to delete all entries.

Assume the follwing code

Skip skp1 = create();
Skip skp2 = skp1;

delete(skp1);

// here skp2 is deleted too!

Best regards

Wolfgang

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
KBSri - Fri Jan 30 04:58:42 EST 2015

Wolfgang Uhr - Fri Jan 30 03:38:09 EST 2015

Hello Mike

> If you get a problem in this line, there is something like an undefined value in your skip list which does not point to a string value.

That is normally not a problem als long as you do not use "skip_key"

Actually my "skip_existData"-routine returns a boolean but the rest is the same code.

Allthough despite some exceptions there is no reason to use such a function. If the skip list is empty the inner for-loop is never used

for skip_key in check_skip do {
  ....
}

Best regards

Wolfgang

Hello Thanks Wolfgang and Mike. I had no luck as I am getting the same error even after declaring it as "CreateString".

Tried to check whether all the variables inside the put () but I could not eradicate the error.

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
Mike.Scharnow - Fri Jan 30 05:03:15 EST 2015

KBSri - Fri Jan 30 04:58:42 EST 2015

Hello Thanks Wolfgang and Mike. I had no luck as I am getting the same error even after declaring it as "CreateString".

Tried to check whether all the variables inside the put () but I could not eradicate the error.

Yes, that's correct (although this would have troubled you later, good that you changed it). Read our last mails (Skip list is null).

Re: Unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 00000000408D9617
KBSri - Fri Jan 30 06:16:39 EST 2015

Mike.Scharnow - Fri Jan 30 05:03:15 EST 2015

Yes, that's correct (although this would have troubled you later, good that you changed it). Read our last mails (Skip list is null).

Yes Thanks. Skip list is null. Will check for the correct code flow.