显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

windfly's sky

the sky I can fly like the wind

 
 
 
 
 
 
 
 
 
 
网易云音乐 曲目表歌词秀
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

日历

 
 
模块内容加载中...
 
 
 
 
 
 
 
 

C++下标越界后

2017-5-18 10:06:44 阅读25 评论0 182017/05 May18

最近遇到一个很奇怪的问题,在arm-linux下发现一个bug,用windows版验证也有这个问题,后来查到原因是下标错了,多加了1,后来修复了这个bug。可是测试人员在验证新版本时告诉我,原版本没有这个问题。后来了解到,该测试人员测试的额x86-linux版本。确实没有出现这个bug。这就奇怪了,肯定是用错了,肯定是下标加了个1。怎么会没问题呢。
遇到的bug抽象出来的示例代码如下:
#include <stdio.h>
bool aa[5]={false,false,true,false,true};
bool bb[5]={true,true,true,true,true};
int main()
{
    if(aa[5])
        printf("true\n");

作者  | 2017-5-18 10:06:44 | 阅读(25) |评论(0) | 阅读全文>>

一个四舍五入的问题

2017-3-1 13:57:28 阅读15 评论0 12017/03 Mar1

问题是要做一个float转int型的计算,但是涉及到小数部分四舍五入的问题。
开始找了一段代码,也是搜索到的比较流行的
data=(double)(int)(data+0.5);
试了几个数据,似乎没有问题,但是当a的设置大于int型的最大值时,结果变成了0,这就没法接受了。
新的代码是
(data > 0.0)?floor(data + 0.5):ceil(data-0.5);
这样避免了显示的类型转换,而且考虑了负数的情况。

作者  | 2017-3-1 13:57:28 | 阅读(15) |评论(0) | 阅读全文>>

共享库权限导致的程序崩溃调试总结

2017-2-15 16:56:00 阅读34 评论0 152017/02 Feb15


调试一个程序,现象是进程序直接退出。
1.printf
首先想到的是在main函数里面找,用printf来看是执行到哪里。结果在main函数的一开始就增加打印信息都没有出来。
后来想到该程序使用了大量的动态链接库,而动态链接库里又有全局变量存在。因此推断问题出在动态链接库里面。尤其是在进main函数之前执行的代码。
于是在动态链接库文件里的类构造函数加打印信息。结果有一些打印出来了。但是库太多,也没法一个一个挨个加。放弃。
2.gdb
编译时增加了-g参数,生成调试信息,然后用gdb调试,希望能查到原因。
可是,gdb下运行,出现退出的信息,用where查看,给出的是main函数的最后,而且报的错误是一个assert,就是说程序直接就没进main函数,直接就到了main之后的释放内存,而报错的部分也是在析构函数里出现的。
用gdb单步

作者  | 2017-2-15 16:56:00 | 阅读(34) |评论(0) | 阅读全文>>

树莓派2装一个LCD显示SSID和ip地址

2016-9-3 13:46:39 阅读91 评论0 32016/09 Sept3

我的树莓派2开始时加了一个无线模块的和hdmi转ga模块的,之前的使用都是街上屏幕,鼠标,键盘,登录。可是有时候却需要显示器接到笔记本电脑上,而树莓派可以通过ssh登录。
那么把树莓派的显示器,鼠标键盘拔掉,直接上电启动,在笔记本上ssh登录不是更好吗?可是由于我这边有两个无线热点可用,而且IP地址是自动获取的,所以就想到了加一个LCD显示SSID和IP地址。
1.首先是硬件接线
最普通的2X16的HDD44780的LCD模块。

LCD 各个引脚的定义:

  1. Ground
  2. VCC - 5v not 3.3v
  3. Contrast adjustment (VO) from potentiometer
  4. Register Select (RS). RS=0: Command, RS=1: Data

作者  | 2016-9-3 13:46:39 | 阅读(91) |评论(0) | 阅读全文>>

vnc的使用

2016-8-14 11:28:27 阅读24 评论0 142016/08 Aug14

VNC是linux下很好用的远程桌面工具,与windows的远程桌面很类似。可以通过windows下的客户端访问linux。
操作方法摘要:
服务器端:
#vncserver :1
输入密码就可以了
客户端:
如果时linux的客户端。直接输入 #vncviewer IPADDRESS:1
输入密码就可以了。
如果时window,装个VNC的客户端就行了

作者  | 2016-8-14 11:28:27 | 阅读(24) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
 

北京市 海淀区

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

注册 登录  
 加关注