Author Topic: Debugging: Registers & Memory windows don't refresh  (Read 195 times)

MarcusRain

  • Junior Community Member
  • Posts: 6
  • Hero Points: 0
Debugging: Registers & Memory windows don't refresh
« on: July 01, 2020, 03:51:41 am »
Trying to decide if I want to purchase SE Pro. I'm working only in x86 64 bit Linux assembly and I need a good IDE that displays registers and memory dumps while debugging. Struggled for quite some time but managed to set up SE to use NASM to assemble and GDB to debug. But when stepping through while debugging, the Registers & Memory windows are not updating--they initially display data when they are first drawn, but then remain static as I step through the instructions. If I were to say hit ENTER again at the entry field for the entered address in the Memory window, then it will refresh.

Why aren't these automatically refreshing during debugging?

EDIT: I customized project type "C/C++ --> GNU C/C++"
« Last Edit: July 01, 2020, 08:16:47 pm by MarcusRain »

Dennis

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 2931
  • Hero Points: 438
Re: Debugging: Registers & Memory windows don't refresh
« Reply #1 on: July 01, 2020, 10:03:41 pm »
I'll do some testing and get back to you tomorrow on this.

MarcusRain

  • Junior Community Member
  • Posts: 6
  • Hero Points: 0
Re: Debugging: Registers & Memory windows don't refresh
« Reply #2 on: July 02, 2020, 04:46:56 am »
Thanks, I appreciate it.

Note that the same behaviour occurs whether I use my native GDB or the one bundled with SE.

MarcusRain

  • Junior Community Member
  • Posts: 6
  • Hero Points: 0
Re: Debugging: Registers & Memory windows don't refresh
« Reply #3 on: July 02, 2020, 06:58:13 am »
I turned on debug logging to provide you with some more info. The only error I notice is close to the beginning of the log:
Code: [Select]
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"python\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"Traceback (most recent call last):\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"  File \"<string>\", line 6, in <module>\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"  File \"/home/ryan/slickedit-pro2019/toolconfig/vsdebug/python/qt/printers.py\", line 478\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"    except RuntimeError, error:\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"                       ^\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"SyntaxError: invalid syntax\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"Error while executing Python code.\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: evt=&"Warning: /snap/bin: No such file or directory.\n"
debug[2020-07-02T02:32:34Z]  GDB command_reply: reply=^error,msg="Error while executing Python code."
debug[2020-07-02T02:32:34Z]  GDB command_reply: elapsed=123

Also, just to confirm there isn't any updating of registers [or the memory window], I only see the register values close to the beginning of the log file. The log file details stepping through the program (the log file from one session was 220k), but the register values (and the memory window values) are not repeated in the log.

Code: [Select]
debug[2020-07-02T02:32:35Z]  GDB command_reply: reply=^done,register-values=[{number="0",value="0x0"},{number="1",value="0x402000"},{number="2",value="0x0"},{number="3",value="0x0"},{number="4",value="0x0"},{number="5",value="0x0"},{number="6",value="0x0"},{number="7",value="0x7fffffffe4b0"},{number="8",value="0x0"},{number="9",value="0x0"},{number="10",value="0x0"},{number="11",value="0x0"},{number="12",value="0x0"},{number="13",value="0x0"},{number="14",value="0x0"},{number="15",value="0x0"},{number="16",value="0x401006"},{number="17",value="0x202"},{number="18",value="0x33"},{number="19",value="0x2b"},{number="20",value="0x0"},{number="21",value="0x0"},{number="22",value="0x0"},{number="23",value="0x0"},{number="24",value="0x0"},{number="25",value="0x0"},{number="26",value="0x0"},{number="27",value="0x0"},{number="28",value="0x0"},{number="29",value="0x0"},{number="30",value="0x0"},{number="31",value="0x0"},{number="32",value="0x37f"},{number="33",value="0x0"},{number="34",value="0xffff"},{number="35",value="0x0"},{number="36",value="0x0"},{number="37",value="0x0"},{number="38",value="0x0"},{number="39",value="0x0"},{number="40",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="41",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="42",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="43",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="44",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="45",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="46",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="47",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="48",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="49",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="50",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="51",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}"},{number="52",value="{v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x

Dennis

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 2931
  • Hero Points: 438
Re: Debugging: Registers & Memory windows don't refresh
« Reply #4 on: July 02, 2020, 03:15:01 pm »
I have a hot fix workaround that I will push out soon.  The correct fix is deeper down in the tall grass.

There was a design flaw in how we handled registers because they were not being fetched per-thread.  This will be fixed in the next release.

MarcusRain

  • Junior Community Member
  • Posts: 6
  • Hero Points: 0
Re: Debugging: Registers & Memory windows don't refresh
« Reply #5 on: July 02, 2020, 08:45:59 pm »
Great, thanks.

I'm hoping this will fix refreshing the display of the contents at a given memory address as well?

SlickEdit Support

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 309
  • Hero Points: 26
Re: Debugging: Registers & Memory windows don't refresh
« Reply #6 on: July 02, 2020, 09:29:56 pm »
PM sent.

MarcusRain

  • Junior Community Member
  • Posts: 6
  • Hero Points: 0
Re: Debugging: Registers & Memory windows don't refresh
« Reply #7 on: July 03, 2020, 01:51:59 am »
Great, thanks! The registers & the memory dumps properly refresh now.

Is there any way to select which registers are displayed? The output starts with 8 bit and 16 bit registers which I have no interest in.

Thanks again.