- 主题:各位都解决过什么诡异或者让人有成就感的难题?
--
FROM 120.229.2.*
我做过一个解决燃眉之急的。
某个项目,面对公司30年的c++屎山,添加某个non-trivial新功能。
屎山是什么概念,整个项目是从ibm时代c然后迭代到c++的。
模块里每个文件平均2w+行,前1000行基本是全局变量声明,没有注释,到处是硬件bug的work-around。
全局变量名字体会一下:a, curr_line, bp, is_good ...
一个函数3000行,我闲了给你们截个图。
真是加个printf都担心crash。
屎山原负责人玩这个模块20年现已退休,新招的维护已跑路。
我们组对接的是一个台湾清华的干了半年多做不下来被裁。
上面急了又没人可用,让我来做。
我当时是个刚到公司第二年的萌新,以为要借这个裁我。
瞎摸两个月终于找到门道,然后成功完成。老板破天荒当年给了我个outstanding评级。
--
FROM 209.249.20.*
厉害 4位数字的顺序怎么判定? 排列有24钟可能性啊!
【 在 ChenKun 的大作中提到: 】
: 破解过前女友iphone秘密(4位),趁她不在,用纸巾擦干净手机屏幕,在她操作一顿后,趁她不在,把手机放到眼睛水平高度,能看到密码按键区哪几个键上有指纹,一个键还按了两次,然后轻松的式出了密码
- 来自「最水木 for iPhone X」
--
FROM 140.206.194.*
她解锁的时候注意点她手指位置,和那几个数字的位置结合,就知道顺序了。
【 在 joanzhong 的大作中提到: 】
: 厉害 4位数字的顺序怎么判定? 排列有24钟可能性啊!
: - 来自「最水木 for iPhone X」
--
FROM 123.113.150.*
看着都感觉揪心。。
ps 整楼就没啥互联网码农...要么就是硬件相关的 要么就是沉积多年的项目,这种大概率是传统行业吧
【 在 allegro (静水流深) 的大作中提到: 】
: 我做过一个解决燃眉之急的。
: 某个项目,面对公司30年的c++屎山,添加某个non-trivial新功能。
: 屎山是什么概念,整个项目是从ibm时代c然后迭代到c++的。
: ...................
--
FROM 36.112.6.*
检视代码
就是如果员工的代码动不动就崩,怎么调都不行还定位不到的时候,让他给自己讲一遍代码,或者直接看,然后看两遍就找出问题,根本不用调试
很久以前经常干,主要问题还是各种内存乱搞。后来大家都很怕我看他们的代码,因为不看的话经常运行也很正常的,一看就出事.......
还是java好,水平低也不容易出内存问题
【 在 cestlavie 的大作中提到: 】
--
FROM 114.84.194.*
当时自己写的内存驻留程序,截获键盘按键把此时的程序指针保存,并且保存按键。我一边打游戏,一遍按键,比如Insert, Delete,然后尽可能在遇到怪之前之后多按几次。主要是每次启动游戏都是这个同样的起始地址。然后观察,此时因为可以看到有效的程序地址,从那些保存的地址开始看反汇编。淡入淡出的调用比较好发现。先去掉。在打怪前和打怪后按键之间发现有几个子程序调用。改成跳过后,打怪就跳过了。
【 在 xeagle 的大作中提到: 】
: 厉害。只用dos的debug不借助其他汇编工具就把游戏的逻辑看懂了?
:
--
FROM 73.158.253.*
这个库是FAT-16,非常古老,是公司同事老哥90年代末买的,他认为一定是一个小年轻写的(90年代初左右)。那个时候,Windows没听说过可以连续几天不死机的,所以根本不在乎连续运行多久。而且老哥退休前修好了一个bug,之前这个设备是每过几天重启。
另外,我们在2013年左右有发现,CF卡当时2G大小已经脱销,主流是4/8G,还可以买到4G的。老哥设计的时候是2000年,那个时候一般32M。谁想到后来2016年4G都不卖了,只好上8G,但是只用4G。
【 在 lester98 的大作中提到: 】
: 这踏马的写库的人太不负责任了。。。
: 一般时间上的溢出我都会留出一百年的时间。。。
:
--
修改:bihai FROM 73.158.253.*
FROM 73.158.253.*
你们都是牛人。
【 在 bihai 的大作中提到: 】
: 这个库是FAT-16,非常古老,是公司同事老哥90年代末买的,他认为一定是一个小年轻写的(90年代初左右)。那个时候,Windows没听说过可以连续几天不死机的,所以根本不在乎连续运行多久。而且老哥退休前修好了一个bug,之前这个设备是每过几天重启。
: 另外,我们在2013年左右有发现,CF卡当时2G大小已经脱销,主流是4/8G,还可以买到4G的。老哥设计的时候是2000年,那个时候一般32M。谁想到后来2016年4G都不卖了,只好上8G,但是只用4G。
:
--
FROM 192.19.236.*
最近看了一点这方面的东西,发现原来加法溢出无处不在,补码真的神奇。
比如非常简单的无符号数减一操作。
8位无符号数计算十进制2-1
-1的补码表示是 1111 1111 (按位取反加1)
0000 0010 + 1111 1111 = 1 0000 0001,丢弃溢出的1,结果就是1。
无符号数计算十进制 2-255
-255的补码表示是 1 0000 0001 (按位取反加1)
丢弃溢出的1,这样2-255结果就是3。完美符合预期。
【 在 bihai 的大作中提到: 】
: 经验加上逻辑思维,加上运气吧。每天下班都在家编程序作为兴趣爱好,所以可以积累经验。尤其是多线程必须在实战中学习。
: 解决这个问题时先想到从各种多线程死锁,不可重入的函数的重入下手,结果最后啥都没发现。
: 再从共享变量入手,看看哪里用共享变量。因为想到多线程使用共享变量和可能会有问题。最终有个每毫秒更新的32位变量用来计时,在FAT16那个库里面,有个5个地方用了这个变量计算离上次操作是否间隔10秒。但是这五个比较分成两种写法: f - lastF <10, 和 f<lastF + 10。想想看哪个有问题。
: ...................
--
FROM 159.226.95.*