1. 前言 本文主要阐述C语言socket api追踪至系统调用的详细过程。追踪过程分为用户态的追踪和内核态的追踪。 目录 用户态追踪 系统调用定义 系统调用初始化的过程 系统调用的执行过程(以socket为例的证明过程) 内核态追踪 分析replyhi和hello程序 gdb跟踪 sys_sock ...
分类:
其他好文 时间:
2019-12-19 21:39:44
阅读次数:
155
Socket与系统调用深度分析 一、实验内容 研究menuos中replyhi、hello函数并通过gdb调试跟踪发现socket编程api与系统调用之间的关系 二、实验原理 socket调用流程: (1)系统调用 – (2)查找socket – (3)执行socket的对应操作函数 – (4)执行 ...
分类:
其他好文 时间:
2019-12-19 20:57:00
阅读次数:
66
一、建立gdb与gdbserver的通信: 在gdb设置断点在start_kernel阻塞 在gdb调试窗口输入指令c,QEMU继续启动 通过gdb可以跟踪到内核代码start_kernel。 二、为MenuOS集成网络通信程序,即为MenuOs添加replyhi命令。 此时会重启MenuOS 三、 ...
分类:
系统相关 时间:
2019-12-19 19:01:21
阅读次数:
90
1、backtrace一些内存检测工具如Valgrind,调试工具如GDB,可以查看程序运行时函数调用的堆栈信息,有时候在分析程序时要获得堆栈信息,借助于backtrace是很有帮助的,其原型如下: #include <execinfo.h> int backtrace(void **buffer, ...
分类:
编程语言 时间:
2019-12-19 13:20:20
阅读次数:
114
主要介绍Linux下的socket系统调用。解析bind和listen函数的源码 ...
分类:
其他好文 时间:
2019-12-19 12:40:44
阅读次数:
66
安装dgl 并运行的时候,出现了如上错误,很是郁闷;使用 gdb python; run train.py 进行调试,发现是torch的问题;我猜测估计是torch 安装的版本过于新;于是重新安装 1.0.0 版本; 解决上述问题; dgl-cu90 0.4.1 torch 1.0.0 ~/Desk ...
分类:
其他好文 时间:
2019-12-19 12:39:09
阅读次数:
354
摘自:https://blog.csdn.net/love_cjiajia/article/details/82254371 摘自:https://blog.csdn.net/love_cjiajia/article/details/82254371 摘自:https://blog.csdn.net ...
分类:
编程语言 时间:
2019-12-15 10:58:49
阅读次数:
124
非语法,只是使用中可以注意的几个地方 1、中间数据放在内存工作空间中,使用后删除,避免溢出。 2、批量处理使用多进程,但同一个GDB只在一个进程中出现,避免lock问题。 3、64位运行比32位快,不支持个人地理数据库。 4、输出数据是最后一个必选参数时,可以省略,默认输出当前工作空间下。 ...
分类:
其他好文 时间:
2019-12-14 21:28:35
阅读次数:
145
https://zhuanlan.zhihu.com/p/37196870 Linux基础 Linux工具进阶 工具参考篇 1. gdb 调试利器 2. ldd 查看程序依赖库 3. lsof 一切皆文件 4. ps 进程查看器 5. pstack 跟踪进程栈 6. strace 跟踪进程中的系统调 ...
分类:
系统相关 时间:
2019-12-13 12:20:50
阅读次数:
98
实验目标 通过本地Linux系统完成构建调试Linux内核网络代码的环境MenuOS系统 截图证实已经在MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi,也就是MenuOS的网络可以正常工作 截图证实通过gdb可以跟踪到内核代码,比如start_kernel、sys_socket ...
分类:
系统相关 时间:
2019-12-12 21:14:08
阅读次数:
109