缘起
- 有相关问题,还是得当天就整理下,总月末再整理总有点扯。当天有点忙的话,最迟第二天早上来整理好。
- 从20190508晚上整理开始。
Week 19
20190506
- 在不该浪费时间的地方瞎折腾,定位代码知道是
for(){while()}
里while()没走到,一直在看for()里的值,也看到了,还怀疑有地方给改掉了,**没想到是while()
里的sql语句没取到值。 - 感觉任何地方都可以加
|
管道符啊。env | HOME
20190507
1、在
makeall install
时报错 “/usr/bin/ld: cannot find -lgtest”- 第一反应是搜答案,是lib目录下没这个文件,比如usr/lib。
- 但后面实践来看,有可能是makefile中的问题,比如
-L$PATH -lgmock
,有可能是$PATH
没有取得到值。 - 解决方案:我后面这样的报错是,makefile里变量没取到值,给写成环境上的固定路径了。
20190508
1、make是成功的,但最后提示 “make: 警告:检测到时钟错误。您的创建可能是不完整的。” (make: warning: Clock skew detected. Your build may be incomplete.)
- 原因:上传到linux时,win上的时间与linux不一致
- 解决方案:
touch
一下上传的文件,再重新编译一下。
2、
make install
时有时报错了但找错的提示行数不太容易,需要把屏幕输出的内容打印到txt文本里。- 解决方案
make install >a.txt 2>&1
- 解决方案
3、我一般是用
chmod +x file
,看了一下人家shell里写的是chmod u+x
- 区别是:一个只是对当前用户给执行权限。
20190509
- 1、类型输出不对,会core。现场碰到个问题,我就直接加日志了,不管啥类型用的是都是
[%s]
,现场报了一个core,于是整理一下类型输出。 2、于是想到之前也遇到到size_t类型时,我用的是[%d],静态检查时报错了。
- 解决方案:bool类型[%d],longlong类型[%lld],size_t类型用[%zu]
20190510
1、gtest里也可以到源文件上下断点的,这样便于check一下流程里的输出值为啥与期待输出值不一样,可以单步。
- 最开始自已有点蒙,只想着
b 测试代码
里断点,死活挂不上,问了一下大佬有两种方式,一种直接b 源代码
,还有一种set args --gtest_filter=文件名.函数名
- 最开始自已有点蒙,只想着
20190511
环境搭好,代码也OK,但有几个期望输出不一样,周六就远程在家跑一下,遇到几个问题,记录一下。
- 用winscp传文件时,提示4的错误 。竟然是服务器端空间满了。
- 在vi编辑时出现了假死情况,可能我在操作时误输了
ctrl+s
,输入ctrl+q
能通出假死,能继续保存了。 - 想看一下保存到本地的刷屏日志的大小,还是用M单位看了爽。ls -l –block-size=M,之前用
df -m
查看的空间。
19周总结
- 1、把gtest环境搞起来了,看起来很简单的几行命令,涉及到不同环境,要不断调makefile。
- 2、远程支持了人家问题(至少2个),也暴露了自已解决问题不够快。
Week20
20190515
- 1、编译器提示“error: multiple types in one declaration”,类或结构体没有加分号。
20周总结
- 本周没有太多可列的问题(主要是工作量不饱满)。
Week21
20190521
- 1、有发心想看看安全,从事后实践看,也就搜集了下资料,内容根本没怎么看,今年还是要把C++撸完。
20190522
1、现场过来问seq取不到的问题
- 自已主观以为是自已知道的那个地方,折腾半天,才发现现场配置的地方不支持这个功能。
- 还是要确认现场做了些啥,以及他想问啥。
20190524
1、其实算代码规范的问题,正常从网上找个例子,人家只会写
memccpy()
,觉得运行出结果就OK,看我们的规范和CodeReview被指出来的问题,完全就是没真正了解这个函数啊。- 题外话:
malloc()
之前要有强转,本质是由于返回值的类型是void*
- 题外话:
21周总结
- 1、本周有发心开始重新看《C++Primer》,同时发现电脑里还有全书的视频,但最先开始看的竟然是《C和指针》,自已也开始在NAS上搞了个svn,往里提交学习代码,不然总没法check学了啥。
- 运行结果OK的代码,并不一定就是好代码,还是要自已真的读懂每一行才行。
Week22
20190527
- 1、数据库函数确实掌握得不好,
NUMber(16,5)
是啥都不清楚。长度16,精度5。
20190528
1、现场传来一份core文件
- 先跟现场确认一下做了啥操作,引起的core。数据迁移
-
file
看一下哪个进程引起的,自已gdb 进程名 core
,再bt
下,没有上下文,基本上没找到有用的消息。 - 让现场的操作一下,发了个截图回来,是
OCITransRollback()
调用处引起的,这是操作数据库的API,跟现场解释一下,就这么着吧,毕竟我无力解决。可以留着以后跟oracle提。
20190530
- 1、代码规范中,认识到自已一个知识盲区,对于任何没有初始化的代码,我都没有看到出来。(一定要初始化)。
20190531
1、现场给了个截图“Login incorrect. invalid login name or password!”,确认说是用户名、密码是对的,我看了下代码处,觉得可能是是不是FTP服务器的IP地址配得不对。
- 先确认一下现场是不是新机器,如果是新机器可能是环境的配置问题。
- 要来了一份详细的日志,在这个错之前,其实有个“Error:500”的错,同时之前有了220和331的返回码,说明之前是登录成功的。
- 让现场尝试了一下“ftp 服务器地址”,然后
put
和get
是不是报错,没有问题。 - “500 OOPS: cannot change directory”,网上说的改配置都是扯的,首先确认下后面的目录在服务器上是否存在。
2、另一台机器上报530,这个严重些,是一次都没有登录上过。
- 未解决呢,目前现场也没联系,可能他自已在试吧,这个好像还真是配置的问题呢。
参考资料
- Ftp 各种命令以及返回状态码说明
- 如何在命令行中使用 ftp 命令上传和下载文件
- VsFTP出现500 OOPS:cannot change directory 的解决 UBUNTU 使用adduser命令添加用户后,没有自动的创建用户主目录–这个其实没太理解,跟我解决的目录场景不太一样,我这个至少不在所谓的用户主目录下的。
22周总结
履历
- 20190513整理掉了19W遇到的一些问题。
- 20190531下午整理的22W的问题,剩下的临时来了个任务没写。
- 20190601补充完20和21W。