VisualGDB does not correctly shows data

Sysprogs forums Forums VisualGDB VisualGDB does not correctly shows data

This topic contains 7 replies, has 2 voices, and was last updated by  Sergey Volkov 3 weeks, 3 days ago.

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #26469

    Sergey Volkov
    Participant

    i have a variable a = 0x52, but GDB read her like 0x2 or 0x82, but near shows character ‘R’. code char ‘R’ = 0x52.

    i put screen image in attachment

    Attachments:
    You must be logged in to view attached files.
    #26472

    support
    Keymaster

    Hi,

    This looks like VisualGDB incorrectly reformats the value obtained from gdb. If you could share a full gdb log and a log from View->Other Windows->VisualGDB Diagnostics Console, we should be able to find the root cause and release a hotfix promptly.

    #26474

    Sergey Volkov
    Participant

    in attachment

    Attachments:
    You must be logged in to view attached files.
    #26476

    Sergey Volkov
    Participant

    [+13406] ExecuteRawCommand(-exec-continue, d)
    [+0] GDB command result:^running
    [+62] Sending virtual thread events…
    Resetting cached virtual threads (False)
    Evaluating osRtxInfo.thread.run.curr for virtual thread plugin…
    [+0] ExecuteFrameSensitiveCommand(-data-evaluate-expression “osRtxInfo\.thread\.run\.curr”, -1, -1)
    [+0] ExecuteRawCommand(-data-evaluate-expression “osRtxInfo\.thread\.run\.curr”, a)
    [+11] GDB command result:^done,value=”0x200001e8 <os_mem+16>”
    Result: 0x200001e8 <os_mem+16>
    Parsed result: 0x200001e8
    [+0] GDB stop event received
    [+1] Sending a breakpoint hit event for Breakpoint #1
    [+8] ExecuteRawCommand(-data-list-register-values r-10, a)
    [+3] ExecuteRawCommand(-break-after 1 0, a)
    [+7] GDB command result:^done,register-values=[{number=”0″,value=”0x00000000″},{number=”1″,value=”0x200005fc”},{number=”2″,value=”0x40005400″},{number=”3″,value=”0x00000001″},{number=”4″,value=”0x00000000″},{number=”5″,value=”0x00000000″},{number=”6″,value=”0x00000000″},{number=”7″,value=”0x00000000″},{number=”8″,value=”0x00000000″},{number=”9″,value=”0x00000000″},{number=”10″,value=”0x00000000″},{number=”11″,value=”0x00000000″},{number=”12″,value=”0x000c00c0″},{number=”13″,value=”0x20000630″},{number=”14″,value=”0x08002a7b”},{number=”15″,value=”0x08000a10″},{number=”25″,value=”0x21000000″},{number=”91″,value=”0x2002ffc8″},{number=”92″,value=”0x20000630″},{number=”93″,value=”0x00000000″},{number=”94″,value=”0x00000000″},{number=”95″,value=”0x00000000″},{number=”96″,value=”0x00000002″},{number=”97″,value=”0x00000000″},{number=”98″,value=”0x00000000″},{number=”99″,value=”0x00000000″},{number=”100″,value=”0x00000000″},{number=”101″,value=”0x00000000″},{number=”102″,value=”0x00000000″},{number=”103″,value=”0x00000000″},{number=”104″,value=”0x00000000″},{number=”105″,value=”0x00000000″},{number=”106″,value=”0x00000000″},{number=”107″,value=”0x00000000″},{number=”108″,value=”0x00000000″},{number=”109″,value=”0x00000000″},{number=”110″,value=”0x00000000″},{number=”111″,value=”0x00000000″},{number=”112″,value=”0x00000000″},{number=”113″,value=”0x00000000″},{number=”114″,value=”0x00000000″},{number=”115″,value=”0x00000000″},{number=”116″,value=”0x00000000″},{number=”117″,value=”0x00000000″},{number=”118″,value=”0x00000000″},{number=”119″,value=”0x00000000″},{number=”120″,value=”0x00000000″},{number=”121″,value=”0x00000000″},{number=”122″,value=”0x00000000″},{number=”123″,value=”0x00000000″},{number=”124″,value=”0x00000000″},{number=”125″,value=”0x00000000″},{number=”126″,value=”0x00000000″},{number=”127″,value=”0x00000000″},{number=”128″,value=”0x00000000″},{number=”129″,value=”0x00000000″},{number=”130″,value=”0x0000000000000000″},{number=”131″,value=”0x0000000000000000″},{number=”132″,value=”0x0000000000000000″},{number=”133″,value=”0x0000000000000000″},{number=”134″,value=”0x0000000000000000″},{number=”135″,value=”0x0000000000000000″},{number=”136″,value=”0x0000000000000000″},{number=”137″,value=”0x0000000000000000″},{number=”138″,value=”0x0000000000000000″},{number=”139″,value=”0x0000000000000000″},{number=”140″,value=”0x0000000000000000″},{number=”141″,value=”0x0000000000000000″},{number=”142″,value=”0x0000000000000000″},{number=”143″,value=”0x0000000000000000″},{number=”144″,value=”0x0000000000000000″},{number=”145″,value=”0x0000000000000000″}]
    [+10] GDB command result:^done
    [+0] ExecuteFrameSensitiveCommand(-stack-list-frames, 536871400, -1)
    [+0] ExecuteRawCommand(-stack-list-frames, a)
    [+2] GDB command result:^done,stack=[frame={level=”0″,addr=”0x08000a10″,func=”func_Task_Main”,file=”Application/main.cpp”,fullname=”C:\\Projects_2019\\Test_Dalnomer\\Test_Dalnomer\\Application\\main.cpp”,line=”29″},frame={level=”1″,addr=”0x08001f88″,func=”svcRtxThreadGetId”,file=”RTOS/RTX/Source/rtx_thread.c”,fullname=”C:\\Projects_2019\\Test_Dalnomer\\Test_Dalnomer\\RTOS\\RTX\\Source\\rtx_thread.c”,line=”840″},frame={level=”2″,addr=”0x00000028″,func=”??”}]
    [+0] ExecuteFrameSensitiveCommand(-stack-list-arguments 0, 536871400, -1)
    [+0] ExecuteRawCommand(-stack-list-arguments 0, a)
    [+0] GDB command result:^done,stack-args=[frame={level=”0″,args=[name=”argument”]},frame={level=”1″,args=[]},frame={level=”2″,args=[]}]
    Full thread list requested (False)
    Mapping remote path (C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp, 0 dir entries)
    Mapped directly to C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp
    Full thread list requested (False)
    [+2409] ExecuteRawCommand(-exec-continue, d)
    [+0] GDB command result:^running
    [+253] Sending virtual thread events…
    Resetting cached virtual threads (False)
    Evaluating osRtxInfo.thread.run.curr for virtual thread plugin…
    [+0] ExecuteFrameSensitiveCommand(-data-evaluate-expression “osRtxInfo\.thread\.run\.curr”, -1, -1)
    [+0] ExecuteRawCommand(-data-evaluate-expression “osRtxInfo\.thread\.run\.curr”, a)
    [+13] GDB command result:^done,value=”0x200001e8 <os_mem+16>”
    Result: 0x200001e8 <os_mem+16>
    Parsed result: 0x200001e8
    [+0] GDB stop event received
    [+0] Sending a breakpoint hit event for Breakpoint #1
    [+6] ExecuteRawCommand(-data-list-register-values r-10, a)
    [+3] ExecuteRawCommand(-break-after 1 0, a)
    [+10] GDB command result:^done,register-values=[{number=”0″,value=”0x00000000″},{number=”1″,value=”0x200001e8″},{number=”2″,value=”0x20000194″},{number=”3″,value=”0x00000002″},{number=”4″,value=”0x00000000″},{number=”5″,value=”0x00000000″},{number=”6″,value=”0x00000000″},{number=”7″,value=”0x00000000″},{number=”8″,value=”0x00000000″},{number=”9″,value=”0x00000000″},{number=”10″,value=”0x00000000″},{number=”11″,value=”0x00000000″},{number=”12″,value=”0x08000b49″},{number=”13″,value=”0x20000630″},{number=”14″,value=”0x08000b7d”},{number=”15″,value=”0x08000a10″},{number=”25″,value=”0x01000000″},{number=”91″,value=”0x2002ffc8″},{number=”92″,value=”0x20000630″},{number=”93″,value=”0x00000000″},{number=”94″,value=”0x00000000″},{number=”95″,value=”0x00000000″},{number=”96″,value=”0x00000002″},{number=”97″,value=”0x00000000″},{number=”98″,value=”0x00000000″},{number=”99″,value=”0x00000000″},{number=”100″,value=”0x00000000″},{number=”101″,value=”0x00000000″},{number=”102″,value=”0x00000000″},{number=”103″,value=”0x00000000″},{number=”104″,value=”0x00000000″},{number=”105″,value=”0x00000000″},{number=”106″,value=”0x00000000″},{number=”107″,value=”0x00000000″},{number=”108″,value=”0x00000000″},{number=”109″,value=”0x00000000″},{number=”110″,value=”0x00000000″},{number=”111″,value=”0x00000000″},{number=”112″,value=”0x00000000″},{number=”113″,value=”0x00000000″},{number=”114″,value=”0x00000000″},{number=”115″,value=”0x00000000″},{number=”116″,value=”0x00000000″},{number=”117″,value=”0x00000000″},{number=”118″,value=”0x00000000″},{number=”119″,value=”0x00000000″},{number=”120″,value=”0x00000000″},{number=”121″,value=”0x00000000″},{number=”122″,value=”0x00000000″},{number=”123″,value=”0x00000000″},{number=”124″,value=”0x00000000″},{number=”125″,value=”0x00000000″},{number=”126″,value=”0x00000000″},{number=”127″,value=”0x00000000″},{number=”128″,value=”0x00000000″},{number=”129″,value=”0x00000000″},{number=”130″,value=”0x0000000000000000″},{number=”131″,value=”0x0000000000000000″},{number=”132″,value=”0x0000000000000000″},{number=”133″,value=”0x0000000000000000″},{number=”134″,value=”0x0000000000000000″},{number=”135″,value=”0x0000000000000000″},{number=”136″,value=”0x0000000000000000″},{number=”137″,value=”0x0000000000000000″},{number=”138″,value=”0x0000000000000000″},{number=”139″,value=”0x0000000000000000″},{number=”140″,value=”0x0000000000000000″},{number=”141″,value=”0x0000000000000000″},{number=”142″,value=”0x0000000000000000″},{number=”143″,value=”0x0000000000000000″},{number=”144″,value=”0x0000000000000000″},{number=”145″,value=”0x0000000000000000″}]
    [+10] GDB command result:^done
    [+0] ExecuteFrameSensitiveCommand(-stack-list-frames, 536871400, -1)
    [+0] ExecuteRawCommand(-stack-list-frames, a)
    [+2] GDB command result:^done,stack=[frame={level=”0″,addr=”0x08000a10″,func=”func_Task_Main”,file=”Application/main.cpp”,fullname=”C:\\Projects_2019\\Test_Dalnomer\\Test_Dalnomer\\Application\\main.cpp”,line=”29″},frame={level=”1″,addr=”0x08001f88″,func=”svcRtxThreadGetId”,file=”RTOS/RTX/Source/rtx_thread.c”,fullname=”C:\\Projects_2019\\Test_Dalnomer\\Test_Dalnomer\\RTOS\\RTX\\Source\\rtx_thread.c”,line=”840″},frame={level=”2″,addr=”0x00000028″,func=”??”}]
    [+0] ExecuteFrameSensitiveCommand(-stack-list-arguments 0, 536871400, -1)
    [+0] ExecuteRawCommand(-stack-list-arguments 0, a)
    [+0] GDB command result:^done,stack-args=[frame={level=”0″,args=[name=”argument”]},frame={level=”1″,args=[]},frame={level=”2″,args=[]}]
    Full thread list requested (False)
    Mapping remote path (C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp, 0 dir entries)
    Mapped directly to C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp
    Full thread list requested (False)
    [+135931] ExecuteFrameSensitiveCommand(-var-create – * “addr”, 536871400, 0)
    [+0] ExecuteRawCommand(-stack-select-frame 0, a)
    [+2] GDB command result:^done
    [+0] ExecuteRawCommand(-var-create – * “addr”, a)
    [+1] GDB command result:^error,msg=”-var-create: unable to create variable object”
    Mapping remote path (C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp, 0 dir entries)
    Mapped directly to C:\Projects_2019\Test_Dalnomer\Test_Dalnomer\Application\main.cpp
    [+1] ExecuteFrameSensitiveCommand(-var-create – * “a”, 536871400, 0)
    [+0] ExecuteRawCommand(-stack-select-frame 0, a)
    [+9] GDB command result:^done
    [+0] ExecuteRawCommand(-var-create – * “a”, a)
    [+2] GDB command result:^done,name=”var2″,numchild=”0″,value=”82 ‘R'”,type=”U8″,has_more=”0″
    [+0] ExecuteRawCommand(ptype/mt U8, f)
    [+11] GDB command result:^done
    [+0] ExecuteFrameSensitiveCommand(-var-create – * “i”, 536871400, 0)
    [+0] ExecuteRawCommand(-stack-select-frame 0, a)
    [+10] GDB command result:^done
    [+0] ExecuteRawCommand(-var-create – * “i”, a)
    [+2] GDB command result:^done,name=”var3″,numchild=”0″,value=”2″,type=”U16″,has_more=”0″
    [+0] ExecuteRawCommand(ptype/mt U16, f)
    [+0] GDB command result:^done

    #26478

    support
    Keymaster

    Thanks for the detailed logs. Turned out, a recent optimization on our side broke display of some typedef’ed variables.

    We have fixed the issue in the following build: VisualGDB-5.5.2.3385.msi

    #26479

    Sergey Volkov
    Participant

    Now shows 0x82.   must be 0x52

    Attachments:
    You must be logged in to view attached files.
    #26483

    support
    Keymaster

    Hi,

    Sorry, this is by design. 82 is the correct decimal value for 0x52. You can switch between the decimal and hexadecimal view by right-clicking in the Watch window and selecting “Hexadecimal View”.

    #26492

    Sergey Volkov
    Participant

    Sorry, i was wrong.

Viewing 8 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.