Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[CE 6.8.1] Bugs when working on files

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Wed Sep 12, 2018 6:18 am    Post subject: [CE 6.8.1] Bugs when working on files Reply with quote

The first 3 reports below assume you are working on files (aka "physical memory") instead of running processes.

Bug 1: CE x86 freezes when displaying "Error TControl.ChangeBounds loop detected" after opening a file through file->open file. Someone had the same issue with CE 6.6 and was told to resize the window or reset settings, neither fixed the problem on my end.

Bug 2: CE x64 gives the same error, doesn't freeze, but all scan buttons are greyed.

Bug 3: Cheat entries using pointers show "P->???" in the address column even if the correct data is displayed in the value column.
This only applies if cheat_record->change address->pointer checkbox is ticked, records with an "inline" pointer (ex: "[0]+4" in the address field) display the correct address. (In my case the point of using a pointer in a file was to read header size and access the data after)

Bug 4: if I open a file then attach to an unrelated process, CE will show the name of the process at the top of the main window, but the scans will be performed on the file instead and the memory viewer will show the content of the file. I guess that's a workaround bug 2.

Reproducibility for all 4 bugs: always.

_________________
DO NOT PM me if you want help on making/fixing/using a hack.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

Joined: 09 May 2003
Posts: 25262
Location: The netherlands

PostPosted: Wed Sep 12, 2018 9:14 am    Post subject: Reply with quote

I can't reproduce 1 or 2

3: try running lua command
Code:

setAssemblerMode(1)
setPointerSize(8)

or
Code:

setAssemblerMode(0)
setPointerSize(4)


4: ok

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Wed Sep 12, 2018 3:14 pm    Post subject: Reply with quote

1&2: Ack, that's problematic.
After investigation I narrowed down the issue to MainForm.Control[3].Control[12].Control[2].Control[4] = cbSaferPhysicalMemory failing to be created
because any createCheckBox(MainForm-3-12-2) fails with the ChangeBounds error.
It appears hiding MainForm-3-12-2-1 = edtAlignment beforehand prevents the error.
If I un-hide edtAlignment after opening a file this editbox will not be rendered properly until the next resize event, where cbSaferPhysicalMemory will be pushed downward offscreen/off window with the bottom of the frame of "Memory Scan Options".

Other info:
The full error message is:
Quote:
TControl.ChangeBounds loop detected:TcheckBox
Left=0,Top=1000,Width=122,Height=17
NewLeft=0,NewTop=1001,NewWidth=122,NewHeight=17


Running this script after opening a file with edtAlignment visible:
Code:
local cbSMA=MainForm.Control[3].Control[12].Control[2].Control[4]
cbSMA.top=XXX
print(cbSMA.top)

returns 1000+XXX if XXX>=0 else 999.


3: those scripts had no perceptible effect on the issue: I ran the scripts then added a pointer to the table -> still "P->???" while displaying the correct value.

_________________
DO NOT PM me if you want help on making/fixing/using a hack.
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Thu Sep 20, 2018 2:07 am    Post subject: Reply with quote

Alright, took the source, fixed bug 1:
In MainUnit.pas, near line 2675 replace:
Code:
cbsaferPhysicalMemory:=tcheckbox.create(self);
cbsaferPhysicalMemory.Caption:=strSaferPhysicalMemory;
cbsaferPhysicalMemory.Checked:=dbk32functions.saferQueryPhysicalMemory;
cbsaferPhysicalMemory.Parent:=cbPauseWhileScanning.Parent;
cbsaferPhysicalMemory.left:=cbPauseWhileScanning.left;
cbsaferPhysicalMemory.Top:=cbPauseWhileScanning.top;
cbsaferPhysicalMemory.OnChange:=cbSaferPhysicalMemoryChange;

by:
Code:
cbsaferPhysicalMemory:=tcheckbox.create(self);
cbsaferPhysicalMemory.Caption:=strSaferPhysicalMemory;
cbsaferPhysicalMemory.Checked:=dbk32functions.saferQueryPhysicalMemory;
cbsaferPhysicalMemory.Left:=cbPauseWhileScanning.Left;
cbsaferPhysicalMemory.Top:=cbPauseWhileScanning.Top;
cbsaferPhysicalMemory.OnChange:=cbSaferPhysicalMemoryChange;

//Fix for the changebounds bug: add the 8 lines below before setting parent
//Also setting parent after setting top & left avoids many ChangeBounds calls.
cbsaferPhysicalMemory.AnchorSideLeft.Control:=cbPauseWhileScanning.AnchorSideLeft.Control;
cbsaferPhysicalMemory.AnchorSideLeft.Side:=cbPauseWhileScanning.AnchorSideLeft.Side;
cbsaferPhysicalMemory.AnchorSideTop.Control:=cbPauseWhileScanning.AnchorSideTop.Control;
cbsaferPhysicalMemory.AnchorSideTop.Side:=cbPauseWhileScanning.AnchorSideTop.Side;
cbsaferPhysicalMemory.AnchorSideRight.Control:=cbPauseWhileScanning.AnchorSideRight.Control;
cbsaferPhysicalMemory.AnchorSideRight.Side:=cbPauseWhileScanning.AnchorSideRight.Side;
cbsaferPhysicalMemory.AnchorSideBottom.Control:=cbPauseWhileScanning.AnchorSideBottom.Control;
cbsaferPhysicalMemory.AnchorSideBottom.Side:=cbPauseWhileScanning.AnchorSideBottom.Side;
cbsaferPhysicalMemory.Parent:=cbPauseWhileScanning.Parent;
I'm guessing that without explicit anchors the checkbox somehow decided to attach itself to the bottom of the parent, and when the parent grew to surround its children, the checkbox moved with it.
In the end it didn't have much to do with the alignment edit box. Hiding it or capping its height below 14px also avoided the bug tho...

Bug 2 seems to have disappeared with bug 1: currently all scan buttons work normally after opening files.
Bug 3 was either already fixed in the git source, or has a random component and doesn't trigger atm.
Bug 4 remains.

_________________
DO NOT PM me if you want help on making/fixing/using a hack.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites