Open shaoyabo opened 6 years ago
@pieandcakes what do you think about adding options that would control the call stack format?
I thought we had those already? At least there is some code in EnumFrameInfo that checks for whether args are specified.
We do, but I don't think we have a way to control that in VS Code.
@shaoyabo The reason why we request this now is to prevent gdb from returning the variable values until requested, but continue to be able to provide the name and types of variables in the method signatures in the call stack. We can add some settings in the launch.json
to allow you as the user to better control the behavior.
Thanks very much; we use F10 once now ,the debugger will run for 5 seconds;
the log:
C next: {"threadId":62820}
1: (239782) <-1997-exec-next
1: (239813) ->1997^running
1: (239813) ->running,thread-id="1"
1: (239813) ->(gdb)
1: (239813) 1997: elapsed time 31
R: {"success":true,"message":null,"request_seq":71,"command":"next","body":null,"running":false,"refs":null,"seq":0,"type":"response"}
1: (239829) ->stopped,reason="end-stepping-range",frame={addr="0xec4b0a96",func="SgNBInfoTransCmd::OnMsg",args=[{name="this",value="0xb667ce8"},{name="msg",value="0xffffce98"}],file="/polestar_build/c00418028/Code/app/l3/ratcp/uecp/ratcp.uecp.cu.uem/src/scenarios/ue_ho/ho_nsa/cuuem_sgnb_info_trans_cmd.cpp",fullname="/polestar_build/c00418028/Code/app/l3/ratcp/uecp/ratcp.uecp.cu.uem/src/scenarios/ue_ho/ho_nsa/cuuem_sgnb_info_trans_cmd.cpp",line="112"},thread-id="1",stopped-threads="all",core="2"
1: (239829) <-1998-stack-list-frames 0 1000
1: (239860) ->1998^done,stack=[frame={level="0",addr="0xec4b0a96",func="SgNBInfoTransCmd::OnMsg",file="/polestar_build/c00418028/Code/app/l3/ratcp/uecp/ratcp.uecp.cu.uem/src/scenarios/ue_ho/ho_nsa/cuuem_sgnb_info_trans_cmd.cpp",fullname="/polestar_build/c00418028/Code/app/l3/ratcp/uecp/ratcp.uecp.cu.uem/src/scenarios/ue_ho/ho_nsa/cuuem_sgnb_info_trans_cmd.cpp",line="112"},frame={level="1",addr="0xec4b1444",func="gof::CmdManager
@shaoyabo would you be ok with less detail in your callstack then? Because the proposed fix is to allow a disabling of this to simplify your method signatures in your callstack view.
Example:
instead of int function(char* a, int b)
you would see function()
Can these two ways be controlled by the user ? This is the best solution
Added it as a feature request.
Have this feature been added to cpp-tool yet?
vscode:1.19.0 ms-vscode.cpptools:0.14.6 the remote linux be suse11 sp3 , when we use F10 ,the gdb very slow; we find MIDebugEngine will create a "varxxx" and delete it at once after -stack-list-arguments; They have wasted a lot of time . see log : 1: (240376) <-2012-stack-list-arguments 0 0 37 1: (240423) ->2012^done,stack-args=[frame={level="0",args=[name="this",name="msg"]},frame={level="1",args=[name="this",name="msg"]},frame={level="2",args=[name="this",name="msg"]},frame={level="3",args=[name="this",name="msg"]},frame={level="4",args=[name="this",name="msg"]},frame={level="5",args=[name="this",name="msg"]},frame={level="6",args=[name="this",name="msg"]},frame={level="7",args=[name="this",name="msg"]},frame={level="8",args=[name="msg"]},frame={level="9",args=[name="this",name="msg"]},frame={level="10",args=[name="this",name="msg"]},frame={level="11",args=[name="msg"]},frame={level="12",args=[name="pMsg",name="pid_index"]},frame={level="13",args=[name="pMsg"]},frame={level="14",args=[name="this",name="pvAtual",name="fileSrc"]},frame={level="15",args=[name="this",name="pvAtual"]},frame={level="16",args=[name="pucMsg",name="vPrios"]},frame={level="17",args=[name="this",name="pMsg",name="vec"]},frame={level="18",args=[name="this",name="ulPid",name="pMsg",name="vec"]},frame={level="19",args=[name="this",name="ulCpuId",name="ulPid",name="pMsg",name="vec"]},frame={level="20",args=[name="this",name="pvMsg",name="vec",name="ulQueueId"]},frame={level="21",args=[name="this",name="lExpectTimeOut"]},frame={level="22",args=[name="isLoopMsg"]},frame={level="23",args=[name="ul_itf_id",name="ul_msg_type",name="usGNodeBNeId"]},frame={level="24",args=[name="this"]},frame={level="25",args=[name="this"]},frame={level="26",args=[name="object",name="method",name="location"]},frame={level="27",args=[name="object",name="method",name="location"]},frame={level="28",args=[name="this"]},frame={level="29",args=[name="this"]},frame={level="30",args=[name="this"]},frame={level="31",args=[name="this"]},frame={level="32",args=[name="object",name="method",name="location"]},frame={level="33",args=[name="object",name="method",name="location"]},frame={level="34",args=[name="this"]},frame={level="35",args=[]},frame={level="36",args=[name="argc",name="argv",name="bFlag",name="strIP"]},frame={level="37",args=[name="argc",name="argv"]}] 1: (240423) ->(gdb) 1: (240423) 2012: elapsed time 46 1: (240423) <-2013-var-create - "this" 1: (240454) ->2013^done,name="var327",numchild="1",value="0xb667ce8",type="SgNBInfoTransCmd const",thread-id="1",has_more="0" 1: (240454) ->(gdb) 1: (240454) 2013: elapsed time 31 1: (240454) <-2014-var-delete var327 1: (240485) ->2014^done,ndeleted="1" 1: (240485) ->(gdb) 1: (240485) 2014: elapsed time 31 1: (240485) <-2015-var-create - "msg" 1: (240516) ->2015^done,name="var328",numchild="0",value="0xffffce98",type="const void ",thread-id="1",has_more="0" 1: (240516) ->(gdb) 1: (240516) 2015: elapsed time 31 1: (240516) <-2016-var-delete var328 1: (240532) ->2016^done,ndeleted="1" 1: (240532) ->(gdb) 1: (240532) 2016: elapsed time 15 1: (240532) <-2017-stack-select-frame 1 1: (240548) ->2017^done 1: (240548) ->(gdb) 1: (240548) 2017: elapsed time 15 1: (240548) <-2018-var-create - "this" 1: (240579) ->2018^done,name="var329",numchild="2",value="0xd2b0298",type="gof::CmdManager const",thread-id="1",has_more="0" 1: (240579) ->(gdb) 1: (240579) 2018: elapsed time 31 1: (240579) <-2019-var-delete var329 1: (240610) ->2019^done,ndeleted="1" 1: (240610) ->(gdb) 1: (240610) 2019: elapsed time 31 1: (240610) <-2020-var-create - "msg" 1: (240626) ->2020^done,name="var330",numchild="0",value="0xffffce98",type="const void ",thread-id="1",has_more="0" 1: (240626) ->(gdb) 1: (240626) 2020: elapsed time 15 1: (240626) <-2021-var-delete var330 1: (240657) ->2021^done,ndeleted="1" 1: (240657) ->(gdb) 1: (240657) 2021: elapsed time 31 1: (240657) <-2022-stack-select-frame 2 1: (240688) ->2022^done 1: (240688) ->(gdb) 1: (240688) 2022: elapsed time 31 1: (240688) <-2023-var-create - "this" 1: (240720) ->2023^done,name="var331",numchild="2",value="0xd1f89d8",type="const gof::MsgDispatcher const",thread-id="1",has_more="0" 1: (240720) ->(gdb) 1: (240720) 2023: elapsed time 31