Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Compiling, Linking, Debugging of your packages » SOLVED - When I try to do the exe on computer I get has encountered a problem
Re: When I try to do the exe on computer I get xx.exe has encountered a problem and needs to close. [message #32730 is a reply to message #32728] Sat, 04 June 2011 14:42 Go to previous messageGo to previous message
silverx is currently offline  silverx
Messages: 62
Registered: March 2011
Member
Yes, I know it was fixed, but that was after I stripped it down to just what I needed.

Further on the issue, I found the statement that it is having the problem with. I got IDA disassembler, and using the address from the information I found the instruction. Also the IDA disassembler allows you to run the code, and it gave me the illegal instruction on the same instruction.

It is in the Upp::StdConvertDouble code.

I also compiled and linked the code for bombs.exe and it runs fine on all of the computers including the one that I am having the issue with my program with.

I then used the IDA disassembler on bombs.exe and found the same code.

Interesting, it is not the same code. My uses MOVSD which is the illegal instruction.

Attached is a zip with 2 files in it. one with bombs.txt, which is the code from bombs.exe the other mysysinfo.txt from code of my program.

Not sure why the code is different for this function, as both were compiled and linked on the same computer. And I didn't change any linking option between them.

Any possible reason for this difference in the compiled code?


smaller part of code from mysysinfo

mov ecx, $S20
or ecx, 1
mov $S20, ecx
mov [ebp+var_4], 0
push 0
movsd xmm0, ds:qword_8DB838
xorpd xmm0, oword ptr ds:__mask@@NegDouble@
sub esp, 8
movsd [esp+1Ch+var_1C], xmm0
sub esp, 8
fld ds:qword_8DB838
fstp [esp+24h+var_24]
mov ecx, offset unk_AFE170
call j_Upp__ConvertDouble__ConvertDouble
push offset _Upp__StdConvertDouble____2____dynamic_atexit_destructor_for __x__ ; _onexit_t
call atexit
add esp, 4
mov [ebp+var_4], 0FFFFFFFFh

The code from bombs for the same part of the code

mov ecx, $S20
or ecx, 1
mov $S20, ecx
mov [ebp+var_4], 0
push 0
fld ds:dbl_7845E8
fchs
sub esp, 8
fstp [esp+1Ch+var_1C]
sub esp, 8
fld ds:dbl_7845E8
fstp [esp+24h+var_24]
mov ecx, offset unk_947D28
call j_Upp__ConvertDouble__ConvertDouble
push offset _Upp__StdConvertDouble____2____dynamic_atexit_destructor_for __x__ ; _onexit_t
call atexit
add esp, 4
mov [ebp+var_4], 0FFFFFFFFh

Just a few lines are different, it uses fstp instead of movsd.


Any idea's on why and how to get them to generate the same code?

David

  • Attachment: codedif.zip
    (Size: 1.64KB, Downloaded 307 times)
 
Read Message icon14.gif
Read Message
Read Message
Read Message
Read Message
Read Message icon7.gif
Read Message
Read Message
Read Message
Previous Topic: Compile Error with NOGTK flag
Next Topic: Windows Can't continue error
Goto Forum:
  


Current Time: Sun May 05 02:44:32 CEST 2024

Total time taken to generate the page: 0.02106 seconds