当前位置: 首页 > news >正文

回顾复习1:

1. Json——API:

json grpjson;
//json.[key]=val;
grpjson["id"] = group.getId();
grpjson["groupname"] = group.getName();
grpjson["groupdesc"] = group.getDesc();vector<string> userV;
grpjson["users"] = userV;
//序列化json对象
grpjson.dump();
//发送序列化
conn->send(response.dump());

2. MySQL:3306

//初始化数据库
_conn = mysql_init(nullptr);// 释放数据库连接资源
mysql_close(_conn);// 连接数据库
MYSQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(),password.c_str(), dbname.c_str(), 3306, nullptr, 0);
mysql_query(_conn, "set names gbk");// 更新操作
mysql_query(sql)// 查询操作
MYSQL_RES *MySQL::query(string sql)
return mysql_use_result(_conn);// 获取连接
return _conn;mysql_init();//初始化
mysql_connect()//连接
mysql_update(sql)//更新
MYSQL_RES *res = mysql_query(sql);//查找
MYSQL_ROW row;//行信息
row = mysql_fetch_row(res)) != nullptr//下一行不为空
mysql_free_result(res);//释放连接
delete from offlinemessage where userid=%d";
select message from offlinemessage where userid = %d";    
sprintf(sql, "insert into offlinemessage values(%d, '%s')", userid, msg.c_str());
update user set state = '%s' where id = %d;

3. Git:

一、基础配置

  1. git config --global user.name "Your Name":设置全局用户名。
  2. git config --global user.email "your_email@example.com":设置全局用户邮箱。

二、初始化仓库

  1. git init:在当前目录创建一个新的 Git 仓库。

三、添加和提交文件

  1. git add <file>:将指定文件添加到暂存区。例如,git add index.html
  2. git add.:将当前目录下的所有修改过的文件添加到暂存区。
  3. git commit -m "Commit message":提交暂存区的文件,并添加提交信息。例如,git commit -m "Added new feature"

四、查看状态和历史

  1. git status:查看当前仓库的状态,显示哪些文件被修改、哪些文件已暂存、哪些文件未被跟踪等。
  2. git log:查看提交历史,显示每个提交的哈希值、作者、日期和提交信息。
  3. git log --oneline:以简洁的方式显示提交历史,每个提交只显示一行信息。
  4. git diff:查看工作区和暂存区之间的差异。
  5. git diff --staged:查看暂存区和上一次提交之间的差异。

五、分支操作

  1. git branch:列出所有分支。
  2. git branch <branch_name>:创建一个新分支。例如,git branch new-feature
  3. git checkout <branch_name>:切换到指定分支。例如,git checkout new-feature
  4. git merge <branch_name>:将指定分支合并到当前分支。例如,在主分支上执行git merge new-feature将把“new-feature”分支合并到主分支。

六、远程仓库操作

  1. git remote add <remote_name> <remote_url>:添加一个远程仓库。例如,git remote add origin https://github.com/your_username/your_repo.git
  2. git push <remote_name> <branch_name>:将本地分支推送到远程仓库。例如,git push origin main将本地的“main”分支推送到名为“origin”的远程仓库。
  3. git pull <remote_name> <branch_name>:从远程仓库拉取最新的更改并合并到当前分支。例如,git pull origin main从“origin”远程仓库的“main”分支拉取更新。
  4. git clone <remote_url>:克隆一个远程仓库到本地。例如,git clone https://github.com/your_username/your_repo.git

七、撤销操作

  1. git reset <file>:取消对指定文件的暂存,将其从暂存区移除并恢复到工作区的未暂存状态。
  2. git reset --hard <commit_hash>:回退到指定的提交,丢弃自该提交之后的所有更改。

八、标签操作

  1. git tag <tag_name>:为当前提交创建一个轻量级标签。
  2. git tag -a <tag_name> -m "Tag message":创建一个带注释的标签,并添加标签信息。
  3. git push <remote_name> <tag_name>:将标签推送到远程仓库。

4. Linux路径查询

find / -name "myfile.txt"
which mycommand 会查找可执行文件 mycommand 的路径
ls | grep myfile.txt 

5. Gcc coru

生成Core文件相关命令(Linux)

ulimit命令查看Core文件大小限制

ulimit -c    返回值是0,代表不允许生成Core文件;

如果是一个数字(如1024),表示Core文件大小被限制为该数字KB)。

临时设置Core文件大小限制

ulimit -c unlimited:这条命令用于在当前终端会话中将Core文件大小限制设置为无限制

这样程序崩溃时就能够生成完整的Core文件。可能会占用大量的磁盘空间

编辑limits.conf文件相关命令(用于永久设置)

使用文本编辑器打开文件

在Linux系统中,可以使用vivim来编辑/etc/security/limits.conf文件。例如,使用vim /etc/security/limits.conf命令打开文件后,就可以在文件中添加或修改Core文件相关的设置行。

GDB调试Core文件相关命令

启动GDB调试Core文件

gdb <可执行文件名> <Core文件名>

例如,gdb myapp core.myapp,这里myapp是可执行程序的名字,core.myapp是生成的Core文件的名字。

查看调用栈信息

bt 命令(backtrace):在GDB中输入bt,可以打印出程序崩溃时的调用轨迹。这有助于快速定位在哪个函数调用过程中程序出现了问题。

bt full 命令:除了函数调用栈的信息外,bt full还会显示每个栈帧中局部变量的值,提供更详细的信息来帮助分析崩溃原因。

查看栈帧细节

frame <帧编号>

通过bt命令得到栈帧编号后,可以使用frame <帧编号>来查看特定栈帧的详细信息。例如,frame 2会显示编号为2的栈帧的详细内容,包括该栈帧对应的函数名、参数值、局部变量值等。

查看变量信息

print <变量名>

print my_variable会显示my_variable的值。

查看程序源代码(如果有)

list <行号或函数名>

list my_function会显示my_function函数的源代码部分。


http://www.mrgr.cn/news/58641.html

相关文章:

  • 【笔记】apt源设置为阿里云源
  • 基于SSM的BBS社区论坛系统源码
  • 【3D】几何算法合集2(自用资源)方便cv
  • Windows里python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
  • Leetcode239. 滑动窗口最大值
  • 智能语音设备测试 | 音频基础
  • leetcode-75-颜色分类
  • 解读 Java 经典巨著《Effective Java》90条编程法则,第2条:遇到多个构造器参数时要考虑使用构建器
  • 使用js-enumerate报错Cannot set properties of undefined
  • 前端零基础入门到上班:【Day4】HTML 多媒体与表单深度教程
  • 创建型模式-----建造者模式
  • 为什么磁链的基准值ψB=UB*tB
  • 用人工智能,应该怎么掏钱?
  • frida脚本,自动化寻址JNI方法
  • 【C++】一文带你深入理解C++异常机制
  • 7款视频转换器大测评!哪款是最适合你的视频格式转换器?
  • 现代Web界面交互新利器!来探一探这个魔法组件库——MagicUI
  • python 访问openai assistant api(一)
  • 金融工程--pine-script 入门
  • 【python实战】利用代理ip爬取Alibaba海外版数据
  • 从视频中学习的SeeDo:通过VLM解释视频并生成规划、代码(含通过RGB视频模仿的人形机器人OKAMI、DexMV)
  • 机器学习与神经网络的当下与未来
  • Vue学习记录之二十一 Vue3中3种编程风格介绍
  • 凯伦股份荣获中国钢结构协会2024年度技术创新奖
  • 第二单元历年真题整理
  • 文本预处理——构建词云