6 偏飞123

尚未进行身份认证

我要认证

https://github.com/pfysw

等级
TA的排名 4w+

前端调试入门的一些记录

关于Http请求header之Referer讲解https://www.jianshu.com/p/1a6abab212ed谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍https://blog.csdn.net/c15158032319/article/details/79716877

2020-05-10 18:01:08

gcc源码编译

编译是基于msys2平台,使用的源码是gcc-7.3.0-1.src.tar.gz解压后执行 makepkg --skippgpcheck会报错,提示缺少依赖,根据错误提升安装相关依赖pacman -S mpc-devel gmp-devel mpfr-devel isl-devel出现找不到cmp的命令需要安装diffutils: pacman -S diffutils继续执行ma...

2020-05-08 08:08:05

fossil源码编译

fossil是一个类似git的版本控制工具,是由SQLite作者写的,代码的水平应该比较高,fossil还提供了web展示的功能,支持http接口,综合性比较强,对于c语言程序员来说也可以初步了解一些前端和后端的知识,比较有学习价值。1.源码下载学习代码最好的方式当然是自己编译并调试,我是基于msys2开发环境。首先到官网下载发布的版本,选择Source Tarball下载http://w...

2020-04-18 08:56:04

windows下编译gdb源码

在学习编译gdb的过程中,一定要和本文出现的各软件版本保持一致,否则很容易因为版本的原因出现一些奇怪的问题。1.搭建msys2环境在win下编译gdb首先要搭建msys2的开发环境,先从官网下载msys2-i686-20190524.exehttps://www.msys2.org/官网以后会更新版本,为了和本文写的版本保持一致,最好在清华镜像站找到msys2-i686-20190524....

2020-04-11 22:29:13

eclispe设置断点无效(No source file named)

最近不知道做了什么操作导致eclipse的断点无效,表现为gdb只认相对路径的断点,不认绝对路径,而eclipse打断点使用的是绝对路径,导致无效,输出信息是:No source file named默认情况下是不存在这个问题的,不知道怎么恢复成默认,但有一种有效的解决方法:Debug->Debug Configuration->Source->Add->Path-&...

2020-04-11 08:31:10

SQLite源代码编译调试

1.在msys上编译本文介绍的是windows平台,所以首先要安装msys2环境,这里就不细说了,具体可以参考下面这篇文章:https://blog.csdn.net/qiuzhiqian1990/article/details/56671839一开始要下载源代码,官网地址如下https://www.sqlite.org/download.html选择包含全部源文件的版本,11.93M的...

2020-03-08 17:39:39

嵌入式linux之nfs挂载及gdb调试环境的搭建

nfs即网络文件系统,要挂载nfs之前首先要让开发板和ubuntu可以相互ping通。一般在vmware上运行ubuntu,为了能够上网,启动时在网络适配器的选项中选择NAT模式,NAT模式的意思就是和主机共享网络,主机能上网则虚拟机也能上网主机不能上网虚拟机也不能上网。启动ubuntu后,此时是能联网状态,需要先安装NFS相关的两个软件:sudo apt-get install rpcbin...

2019-10-25 08:27:17

嵌入式linux入门笔记

学习的是韦东山的2440板子一开始假设是裸板,首先要用jtag把uboot烧到nor flash,完成后拔掉jtag,然后板子从nor flash,刚开始启动时马上按空格键进入uboot选择菜单,菜单中可以选择烧写普通bin文件到Nand Flash,也可以选择烧写内核或根文件系统到Nand Flash,选择好后,由PC端通过USB把程序文件传输给u-boot,再由u-boot把程序烧写到Nan...

2019-10-15 22:13:50

Eclipse CDT初步使用教程

我用过Source insight和VS,感觉不顺手就没用了,所以也没有深入研究过,其他的如Code::Blocks,vim,Clion, Emacs我也没用过,不好做评价,反正我用Eclipse用的很舒服,这里给大家分享一下,多提供一种选择,如果你是刚学C语言或者你当前的IDE用的不爽,可以尝试一Eclipse。1.外观主界面调试界面,子窗口都是可以拖动的,可以根据自己的喜好配置成合适的...

2019-10-16 12:25:54

推理实验室(1) 命题证明

这里采用A.G.汉密尔顿《数理逻辑》中的记号。原子符号:~、->、p1、p2....公式集:pi是公式,如果A和B是公式,那么~A和A->B也是公式。有时公式太复杂,也可以用∧,∨,<->来简化表示,规定用A∧B表示~(A->~B),用A∨B代替~A->B,用A<->B代替(A->B)∧(B->A),注意这不是原子符号...

2019-10-04 19:39:54

ucc编译器分析与总结(5) 中间代码生成

1.基本框架经过语义检查后,现在已经有了包含符号和类型的完整语法树,现在要做的事情就是继续沿着语法树走一遍,对每条语句和表达式生成相应的中间代码。中间代码以三地址码的形式表示,由两个源操作数,一个目的操作数和一个运算符组成。然后uccc在生成中间代码时以基本块为单位,每个基本块包含若干条中间代码,基本块的开头都会有类似BB1:这样的标签。从静态上来看,所有基本块按顺序通过双向链表连接在一起,...

2019-08-25 16:48:16

词法分析器flex和语法分析器lemon的初步使用

自己手写词法分析器和语法分析器是很麻烦的一件事,而且这里面的逻辑非常复杂很容易出错。flex和lemon就是用来帮助生成词法分析器和语法分析器的,只需要写少量规则代码,就可以生成解析的c代码。现在先不关注实现原理,主要看一下这东西是怎么用的,等以后用熟了要实现深度定制的时候再来看实现源码。1.词法分析器首先得安装一个flex,至于怎么安装就不讲了。词法分析器的功能就是把一串字符串按照给定的规则...

2019-08-12 12:03:15

makefile基本模板

编译时一直以来都是用eclispe自带的自动编译,由于需要对其他开源代码的makefile做一些修改,所以最近学了一下,其实还挺简单的,一些基本概念就不讲了,网上教程很多,下面来举一个基本的例子来记录一下makefile的基本用法。首先文件目录如下,编译的.o文件都放在Obj目录下然后编译时还需要一个库文件libreadline.dll.a,库所在目录为/mingw32/lib ,对应的头文...

2019-08-04 14:56:15

ucc编译器分析与总结(4)表达式和语句检查

1.基本框架之前在语法分析时建立了抽象语法树,在声明时为每个符号建立了类型系统,接下来就要遍历表达式和语句的每个结点,将这些声明的类型绑定在对应的结点,并相应的进行语义规范的检查。每个复合语句的检查都以一个大括号为单位,在这里面又分为局部变量声明的检查和执行语句的检查AstStatement CheckCompoundStatement(AstStatement stmt){ As...

2019-08-04 10:00:44

ucc编译器分析与总结(3) 声明检查

有了类型系统和符号管理的基础知识之后,接下来就可以分析声明检查部分的代码了。源代码经过预编译后生成.i文件,这时候代码主要分为函数语句和声明语句两部分,其实函数只不过是一种特殊的声明语句,比声明语句多了{}里面的内容。函数语句和非函数语句是分开检查的:if (p->kind == NK_Function){ CheckFunction((AstFunction)p);}el...

2019-07-20 16:33:40

ucc编译器分析与总结(2) 类型系统和符号管理

在语法分析的过程中,ucc按照C语言的文法构建了一颗语法树,接下来要根据语法树来进行语义检查,判断代码是否存在编译错误,譬如表达式中的变量有没有定义,定义数组的长度是否为常量,表达式中的类型是否合法等等。语义检查分为语句表达式检查和声明检查两部分,这次主要来分析声明的语义检查,在这个过程中为声明的变量构建了一个类型系统,同时对出现标识符进行管理。1 类型系统1.1 基本类型首先定义一些最基...

2019-07-20 08:42:22

ucc编译器分析与总结(1) 语法分析

编译器、操作系统、数据库是计算机领域中的三大基础软件,基本上所有应用软件都是建立在这三个基础软件之上,这些领域经过前辈们不断打磨现在已经变得非常成熟,很多涉及到的代码技术都是精华中的精华,所以把上面3个软件搞清楚对代码水平的提高会有很多帮助,而且能够对现代计算机的软件架构有更清晰的了解。我现在要研究一个逻辑推理系统,这个推理系统以C语言为基础,这里必然涉及到C语言的解析问题,所以C语言编译器是必...

2019-07-06 16:08:37

关于存在性问题的本质思考

在做《抽象代数的代码实现》这一专题时,我碰到数学概念难以用代码表达的问题,而这又很大程度上是由于数学上各种杂七杂八的存在性问题引起的,所以我想探究一下存在性问题到底是什么。在存在性问题解决之前先把这个专题暂停掉,因为以我现在的能力基本上挖掘不出什么东西,我需要先学习编译器,程序设计语言原理,范畴论等很多相关知识。还是以最简单的存在性问题抽屉原理为例,把4个苹果放进3个抽屉,证明至少有一个抽屉里的...

2019-06-11 21:28:01

抽象代数的代码实现(6)自同构、正规子群、商群

到目前为止,这里面的复杂性已经超出了我的想象,我觉得最关键的还是表达力太欠缺了,怎么用代码来表示各种数学的表达式如多元函数等,数学上的各种变换和各种代换怎么表示,还有各种表达式间的混合运算,真的感觉这些已经不在我的认知范围内,就好像一个初中生去做微积分一样困难。最后打算先粗略的介绍一下自同构的概念,然后就先告一段落吧。同构对于域K到K’的一一映射σ,如果σ(a)σ(b)=σ(ab),那么就把σ...

2019-05-20 17:56:16

抽象代数的代码实现(5)分裂域

不可约多项式先来纠正上篇文章一处不严谨的地方,给定一个多项式f(x),做出有理数域K的扩域K(α),使得f(α) = 0.,这里必须要规定f(x)是不可约多项式才保证能做出扩域,不可约多项式指的是f(x)不能表示成两个次数小于f(x)的多项式之积。如果f(x)是可约多项式,那么并不能按照之前讲的方法扩域,举个例子,假如f(x)=x ^3-1,那么f(x)可约,因为f(x)=x ^3-1 = (...

2019-05-06 08:06:24

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。