ssh connecione Bugs

Could not establish connection. XHR failed

原因是没有网络,需要自己手动下载包

先查看包对应版本

# shaojiemike @ node5 in ~ [15:24:54] C:1
$ rm ~/.vscode-server -rf

# shaojiemike @ node5 in ~ [15:24:59]
$ ls ~/.vscode-server/bin/
784b0177c56c607789f9638da7b6bf3230d47a8c

下载对应版本,移动解压

set_proxy

wget https://update.code.visualstudio.com/commit:784b0177c56c607789f9638da7b6bf3230d47a8c/server-linux-x64/stable

mv stable ~/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c/vscode-server-linux-x64.tar.gz

cd ~/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c

tar -xvxf vscode-server-linux-x64.tar.gz --strip-components 1

重新连接即可

Server installation process already in progress

Server installation process already in progress - waiting and retrying
Acquiring lock on /staff/shaojiemike/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794/vscode-remote-lock.shaojiemike.6c3e3dba23e8fadc360aed75ce363ba185c49794
[09:25:29.643] > Installation already in progress...

just remove the locked file

过程试图写入的管道不存在

Install terminal quit with output: 过程试图写入的管道不存在。
[08:39:15.476] Received install output: 过程试图写入的管道不存在。

一般是本地的known_hosts冲突了,

  1. 删除对应项或者文件后。
  2. terminal重新连接,添加known_hosts
  3. VS Code 正常

服务器插件下载

设置代理,解决绝大部分问题

ssh 公钥的位置

cd
cat .ssh/id_rsa.pub

VSCODE C++ 自动跳转

  1. 已经安装了 C/C++和 C++ Intellisense 插件;
  2. 确认 C_Cpp: IntelliSenseEngine 的开关打开
    1. 左击插件 C/C++,选择小齿轮 -> 扩展设置。
    2. 搜索框内输入 “intell”,将 C_Cpp:Intelli Sense Engine 开关设置为 Default。
  3. “Ctrl + Shift + P”打开C/C++:Edit Configurations(JSON)创建。

另一个基于ctag+vscode的实现方法

  1. 安装插件

VScode Debug Run

数组查看技巧

参考GDB的命令

多线程进程调试c++

-g -O0

修改代码

void LaunchProcess(uint32_t procIdx) {
    int cpid = fork();
    int tsj_flag = 1;
    while(tsj_flag){
        sleep(0.5);
    }

找到运行子进程的PID

PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                                                                                                                                                                                                              
243149 shaojiemi  20   0 1026M  2132  2036 S  8.4  0.0  0:07.00 │  │  └─ ./build/opt/zsim tests/pim.cfg
243150 shaojiemi  20   0 1026M   136    40 S  9.0  0.0  0:07.04 │  │     └─ ./build/opt/zsim tests/pim.cfg

VSCODE设置,连接上后需要暂停再启动一次

{
    "name": "(gdb) 附加",
    "type": "cppdbg",
    "request": "attach",
    "program": "/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator/build/debug/zsim",
    "processId":"276570",
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "为 gdb 启用整齐打印",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        },
        {
            "description":  "将反汇编风格设置为 Intel",
            "text": "-gdb-set disassembly-flavor intel",
            "ignoreFailures": true
        }
    ]
},

多线程进程调试python

图中白色是主进程,绿色是所属同名子进程,来负责不同的功能。

subprocess.Popen(cmd).communicate()time.sleep(20)launch.json
{
   "name": "Python: 使用 PID 连接",
   "type": "python",
   "request": "attach",
   "processId": "${command:pickProcess}"
  },
threading.Thread(target = fuc, args = (xxx)).start()

最终能有如下效果:

单线程启动

{
  "name": "C++ Launch",
  "type": "cppdbg",
  "request": "launch",
  "program": "${workspaceFolder}/a.out",
  "args": ["arg1", "arg2"],
  "environment": [{ "name": "config", "value": "Debug" }],
  "cwd": "${workspaceFolder}"
}
{
    "configurations": [
  {
   "name": "(gdb) 启动",
   "type": "cppdbg",
   "request": "launch",
   "program": "/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator/build/opt/zsim",
            //args设置注意双引号内没有空格,也就是原本命令中的空格就是分隔符。还需要注意路径
   "args": ["/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator/tests/pim.cfg"],
            "args": ["--config", "${workspaceFolder}/Configs/host.cfg",
                "--disable-perf-scheduling","true","--mode=cpu",
                "--stats","host.stats","--trace","${workspaceFolder}/sample_traces/host/rodiniaBFS.out",
                "--core-org=outOrder","--number-cores=4","--trace-format=zsim","--split-trace=true"],
   "stopAtEntry": false,
   "cwd": "/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator",
   "environment": [{ "name":"LD_LIBRARY_PATH","value":"/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator/pin/intel64/runtime/pincrt:/home/staff/shaojiemike/github/ramulator-pim/zsim-ramulator/pin/extras/xed-intel64/lib" } ],
   "externalConsole": false,
   "MIMode": "gdb",
   "setupCommands": [
    {
     "description": "为 gdb 启用整齐打印",
     "text": "-enable-pretty-printing",
     "ignoreFailures": true
    },
    {
     "description":  "将反汇编风格设置为 Intel",
     "text": "-gdb-set disassembly-flavor intel",
     "ignoreFailures": true
    }
   ]
  }

 ]
}
g++ -g -std=c++11 SLIC.cpp -o SLIC #把调试信息加到可执行文件中,如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。

参数

"args": [],

自动格式化

"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, ColumnLimit: 0, AllowShortIfStatementsOnASingleLine: false, AllowShortLoopsOnASingleLine: false, IndentWidth: 4, PointerAlignment: Right, SpacesBeforeTrailingComments: 1 }"

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献