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冲突了,
- 删除对应项或者文件后。
- terminal重新连接,添加known_hosts
- VS Code 正常
服务器插件下载
设置代理,解决绝大部分问题
ssh 公钥的位置
cd
cat .ssh/id_rsa.pub
VSCODE C++ 自动跳转
- 已经安装了 C/C++和 C++ Intellisense 插件;
- 确认 C_Cpp: IntelliSenseEngine 的开关打开
- 左击插件 C/C++,选择小齿轮 -> 扩展设置。
- 搜索框内输入 “intell”,将 C_Cpp:Intelli Sense Engine 开关设置为 Default。
- “Ctrl + Shift + P”打开C/C++:Edit Configurations(JSON)创建。
另一个基于ctag+vscode的实现方法
- 安装插件
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 }"
需要进一步的研究学习
暂无
遇到的问题
暂无