epasveer / seer

Seer - a gui frontend to gdb
GNU General Public License v3.0
2.07k stars 69 forks source link

Speed up some things. #219

Closed epasveer closed 6 months ago

epasveer commented 6 months ago

Seer will update these displays for each step/next. Really, they only need updating if they are being viewed (ie: visible). If they are not visible, don't update them. When they are made visible (brought to top), then they can be updated (ie: refreshed).

  1. Register view
  2. Variable Tracker
  3. Stack Frame
  4. Locals
  5. Arguments
  6. Breakpoints
  7. Watchpoints
  8. Printpoints
epasveer commented 6 months ago

All these commands are executed each step/next. Executing the commands just for the visible views should cut this down.

^running
*running,thread-id="all"
*stopped,reason="end-stepping-range",frame={addr="0x0000000000400697",func="print_vector",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768"}],file="hellogdbserver.c",fullname="/nas/erniep
/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="2"
^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
^done,threads=[{id="1",target-id="Thread 29226.29226",name="hellogdbserver",frame={level="0",addr="0x0000000000400697",func="print_vector",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768
"}],file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},state="stopped",core="2"}],current-thread-id="1"
^done,stack=[frame={level="0",addr="0x0000000000400697",func="print_vector",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},frame={level="1",addr="0x0000000
000400f55",func="main",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="135",arch="i386:x86-64"}]
^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
^done,threads=[{id="1",target-id="Thread 29226.29226",name="hellogdbserver",frame={level="0",addr="0x0000000000400697",func="print_vector",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768
"}],file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},state="stopped",core="2"}],current-thread-id="1"
^done,threads=[{id="1",target-id="Thread 29226.29226",name="hellogdbserver",frame={level="0",addr="0x0000000000400697",func="print_vector",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768
"}],file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},state="stopped",core="2"}],current-thread-id="1"
^done,stack=[frame={level="0",addr="0x0000000000400697",func="print_vector",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},frame={level="1",addr="0x0000000
000400f55",func="main",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="135",arch="i386:x86-64"}]
^done,stack-args=[frame={level="0",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768"}]},frame={level="1",args=[]}]
^done,variables=[{name="title",arg="1",value="0x401080 " FFT""},{name="x",arg="1",value="0x7ffffff7d0c0"},{name="n",arg="1",value="32768"},{name="i",value="0"}]
^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alig
nment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]}
^done,stack=[frame={level="0",addr="0x0000000000400697",func="print_vector",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},frame={level="1",addr="0x0000000
000400f55",func="main",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="135",arch="i386:x86-64"}]
^done,stack=[frame={level="0",addr="0x0000000000400697",func="print_vector",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="27",arch="i386:x86-64"},frame={level="1",addr="0x0000000
000400f55",func="main",file="hellogdbserver.c",fullname="/nas/erniep/Development/seer/tests/hellogdbserver/hellogdbserver.c",line="135",arch="i386:x86-64"}]
^done,stack-args=[frame={level="0",args=[{name="title",value="0x401080 " FFT""},{name="x",value="0x7ffffff7d0c0"},{name="n",value="32768"}]},frame={level="1",args=[]}]
^done,variables=[{name="title",arg="1",value="0x401080 " FFT""},{name="x",arg="1",value="0x7ffffff7d0c0"},{name="n",arg="1",value="32768"},{name="i",value="0"}]
epasveer commented 6 months ago

First pass of improvements yields. There are some duplicate "gets", still.

^running
*running,thread-id="all"
*stopped,reason="end-stepping-range",frame={addr="0x000000000040108f",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffd178"}],file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="3"
^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
^done,threads=[{id="1",target-id="process 768",name="hellostruct",frame={level="0",addr="0x000000000040108f",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffd178"}],file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"},state="stopped",core="3"}],current-thread-id="1"
^done,stack=[frame={level="0",addr="0x000000000040108f",func="main",file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"}]
^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
^done,threads=[{id="1",target-id="process 768",name="hellostruct",frame={level="0",addr="0x000000000040108f",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffd178"}],file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"},state="stopped",core="3"}],current-thread-id="1"
^done,threads=[{id="1",target-id="process 768",name="hellostruct",frame={level="0",addr="0x000000000040108f",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffd178"}],file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"},state="stopped",core="3"}],current-thread-id="1"
^done,stack=[frame={level="0",addr="0x000000000040108f",func="main",file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"}]
^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]}
^done,stack=[frame={level="0",addr="0x000000000040108f",func="main",file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"}]
^done,stack=[frame={level="0",addr="0x000000000040108f",func="main",file="hellostruct.cpp",fullname="/nas/erniep/Development/seer/tests/hellostruct/hellostruct.cpp",line="63",arch="i386:x86-64"}]
epasveer commented 6 months ago

I'm closing this task. More speed improvements can be done in another task.