Linux C/C++代码调试之深入熟悉使用GDB Coredump文件是什么?1.1 产生根因1.2 如何打开?1.3 如何设置文件名以及路径GDB理论部分2.1 基本命令2.2 被忽略但实用的命令2.3 实用的GDB设置GDB操作部分3.1 coredump文件是否任何时候都产生?3.2 系统函数是否可以打印coredump信息?3.3 调试案列(基本使用)3.4 调试案列(多进程)3.5 调试案列(多线程以及线程锁问...
深入探究 Linux C中进程崩溃 目录前言栈内存异常以及案列分享堆内存异常以及案列分享Ptmalloc的内存管理前言LinuxC的内存管理融入了设计者很多高效的算法和思想,提供了用户直接可以操作的内存的“指针”,这也是其他语言不涉及的(除Go语言21世纪的C语言),但是对于指针这把双刃剑,开发者操作着进程的内存,难免造成意想不到的崩溃问题,其实踩内存情况应该把栈和堆(ptmalloc)分开,因为linux对这两块的管理...
gRPC学习之简单模式(第三十九天) 简单模式:简单模式只是使用参数和返回值作为服务器与客户端传递数据的方式建立如下工程:编写文件proto文件syntax="proto3";package Model;message execlResponse{ int32 sid=1; int32 age=2; string name=3; string telephone=4; stri...
gRPC学习之简单实现C\S通信(第三十八天) 总结增加、修改一个grpc接口步骤:1.修改proto文件,新增修改一个service,相应的请求和回复的message2.使用protoc生成go代码3.server和cilent分别调用生成的go包里的方法这个也就是平台中立的体现,没有完全的平台中立,只是从新设计。thrift和 grpc的优劣:1.依据网络进行合理选择2.thrift是Facebook的开源rpc框架,thr...
微服务之技术栈(第二十六天) 这是Spring Cloud 体系,仅仅了解核心支撑组件服务网关 Zuul服务注册发现 Eureka+Ribbon服务配置中心 Apollo认证授权中心 Spring Security OAuth2服务框架 Spring MVC/Boot监控反馈组件数据总线 Kafka日志监控 ELK调用链监控 CATMetrics 监控 KairosDB健康检查和告警 ZMon限...
Go语言之gRPC+Protobuf搭建(第二十八天) 环境安装-Protobuf 安装1.安装Protobuf 编译器 protoc,下载地址:https://github.com/google/protobuf/releases我的是windows,将压缩包bin目录下的exe放到环境PATH目录中即可。...
Redis学习之查看服务器运行状态(第三十五天) 管理 redis 服务127.0.0.1:6379> INFO # Serverredis_version:5.0.8redis_git_sha1:00000000redis_git_dirty:0redis_build_id:fb7771d11d193afbredis_mode:standaloneos:Linux 3.10.0-327.el7.x86_64 x86_64...
Redis学习之事务(第三十四天) Redis 事务一个事务从开始到执行会经历以下三个阶段:开始事务,命令入队,执行事务。Redis 事务命令:序号 命令及描述1 DISCARD取消事务,放弃执行事务块内的所有命令。2 EXEC执行所有事务块内的命令。3 MULTI标记一个事务块的开始。4 UNWATCH取消 WATCH 命令对所有 key 的监视。5 WATCH key [key ...]监视一个(或多个...
Docker学习之安装(第三十五天) 环境安装DockerToolbox在Win7上的安装和设置Docker在Windows上使用有两种方式:1.利用VirtualBox建立linux虚拟机,在linux虚拟机中安装docker服务端和客户端2.利用Windows的Hyper-v虚拟化技术,直接在Windows上安装docker服务端和客户端。WIndows7不支持Hyper-v,采用Docker Toolbox的方式使用Do...
Redis学习之发布订阅(第三十六天) Redis 发布订阅Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。1.订阅者订阅,资源变更事件触发,发送者推送给订阅者(类似与广播或者组播)下图展示了消息通道 channel1 , 订阅的三个客户端 :当有新消息或者资源变更,通过 PUBLISH 命令发送给channel 时, 这个...
Redis学习之键(key)(第三十三天) 对于任何语言以及中间件,我们知道学习不能死记硬背,我们需要的知道思想,工具类的都是死的,我们甚至感觉不好用,可以自己造工具所以,关于Redis 的命令可以通过 ? COMMAND COUNT?的使用127.0.0.1:6379> ?redis-cli 5.0.8To get help about Redis commands type: "help @<group...
Redis学习之Redis 数据类型(第三十二天) Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)zset(sorted set:有序集合)string最基本的类型,一个 key 对应一个 value。是二进制安全的。意思是 redis 的 string 可以包含任何数据。如jpg图片或者序列化的对象。string 类型的值最大能存储 512MB127.0....
Redis学习之redis.conf(第三十一天) Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf查看配置通过 CONFIG 命令查看或设置配置项vim redis.conf 查看配置 CONFIG GET * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "clust...
Redis学习之环境搭建(第三十天) 简述Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。数据结构服务器,因为(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。特点Redis 与其他 key - value 缓存产品有以下三...
微服务之RPC通信(第二十七天) RPC通信RPC,远程调用方式(Remote Procedure Call),RPC像调用本地方法一样调用别的机器上的方法,屏蔽了用户与服务器,服务器与服务器之间的通讯。客户端(Client),服务的调用方。服务端(Server),真正的服务提供者。客户端存根,存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。服务端存根,接收客户端发送过来的消息...
微服务(第二十六天) 微服务微服务(Micro services)是架构演变的产物,相对于单体架构,它用了抽象的思维,将一个系统抽象化,拆成几个小的独立的服务,再把独立的服务串起来微服务特性:每个微服务都运行在自己的空间里;一系列独立运行的微服务共同构建起了整个系统;每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如网络管理,用户管理等;微服务之间通过一些轻量级的通信机制进行通信,例如REST...
GO语言基础理论知识总结以及自评150题(第二十五天) 试题转自网上,答案解析是自己做的,如果有误差欢迎评论邮箱:910212084@qq.com选择题【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC,func 定义函数,struct 定义结构体【初级】定义一个包内全局字符串变量,下面语法正确的是()A. var str stringB. str := “”C. st...
GO与C\C++\python输入输出函数小结(二十四天) C输入输出c语言的输入输出都是包含在头文件stdio.h中scanf() 与 printf()scanf() 函数用于从标准输入(键盘)读取并格式化printf() 函数发送格式化输出到标准输出(屏幕)#include <stdio.h>int main(){ int a = 0; char b = 'a'; char str[100] = {0}...
GO语言基础语法之并发 (第二十三天) Go 并发Go 语言并发,通过 go 关键字来开启 goroutine ,goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。goroutine 语法格式:go 函数名( 参数列表 )例如:go fast(x, y, z) //开启一个新的 goroutine同一个程序中的所有 goroutine 共享同一个地址空间通道(channe...
GO语言基础语法之错误处理 (第二十二天) Go 错误处理Go 语言通过内置的错误接口 errors.New(“日志描述”),import “errors”package mainimport ( "errors" "fmt")func Sqrt(f float64) (float64, error) { if f < 0 { return 0 ,errors.New("negative number")...