NO

Author Topic: Error in debugger display  (Read 2504 times)

oforshell

  • Guest
Error in debugger display
« on: March 09, 2011, 01:49:29 AM »
When debugging there appears to be a problem with the display in the locals tab in that only the low 8 hexadecimal digits of addresses are displayed. When I enter an address from Locals into the Memory tab the expected data is not displayed. When I enter a one (lowest digit in high 32 -bits) before the address it becomes correct and points to the correct data. The correct memory address is 0x000000014??????? and not 0x000000004???????-

Offline TimoVJL

  • Global Moderator
  • Member
  • *****
  • Posts: 2091
Re: Error in debugger display
« Reply #1 on: March 09, 2011, 04:27:35 PM »
Problem exists in PellesC 6.5 debugger in both 32/64bit versions.
Look at 0x00400000 in debugger memory window in 32 bit version.
Code: [Select]
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int __cdecl WinMainCRTStartup(void)
{
BYTE *pByte;
char szTmp[100];
pByte = (PBYTE)GetModuleHandle(NULL);
for (int i=0; i<8;i++)
szTmp[i] = *(pByte+i);
ExitProcess(0);
}
May the source be with you

Offline Pelle

  • Administrator
  • Member
  • *****
  • Posts: 2266
    • http://www.smorgasbordet.com
Re: Error in debugger display
« Reply #2 on: April 17, 2011, 03:57:16 PM »
The debugger will always read memory by blocks, for performance. If the block start on an "unaccessible" address and end on an "accessible" one, the current version thinks the whole block is "unaccessible" - this has been improved in 6.50, RC4.
/Pelle