All Stories
两周的training结束了,唯一的收获是一个教训:英语不好出来混不好。Training的讲师都是从微软总部过来的人,有华人,有加拿大人,还有大概是美国人吧,反正都是说英语的,中国人说的英语打起精神来听,还能勉强听懂大多数,其他人的英语就傻眼了,那些英语是母语的人说得太快,印度人的口音么太大舌头。郁闷死了。
昨天在GT上跟素素聊天说起学英语,然后她发给我一个BBC的链接,说那篇比较简单,让我可以听一下,于是我又华丽丽地被打击了。BBC的语速不是一般的快。
我现在不止是听力不好的问题了,单词量也不够,很多时候要翻词典。我倒是想学英语,可是我能找出一堆理由来证明我没有那个时间。叹气。
Training听不懂,本来对这产品就没了解,再加上英文讲述,于是只好打瞌睡了。无聊的时候,就整理了下Google Contacts,然后发现iOS上的通讯录字段并不能跟Google Contacts完全对应,有点遗憾。
回住处后,从QQ里又找了一遍联系人,把一些QQ号,邮箱,生日等信息也补充了一下。
然后从iOS上看Calendar,有好多生日提醒了。
前些天稀里糊涂被卷进一场很狗血的事件,几乎做了件比拆了十座庙还罪过大的事,不过周日晚上后,差不多抽身而退了。小孩子啊,年轻就是好啊,可以尽情地挥霍爱情。
今天分到一个新任务,关于installation和upgrade,叹气,微软的东西就是烦,很多时候我就在想,这么个特性,那么个需求,也有必要做得那么复杂么!
木耳最近要去北京、厦门研究生面试,如果成功的话意味首明年可能就不在上海了,真是伤感啊。
人生啊,真是没有动力啊。
早上惊闻木耳的twitter账号注销了,倒不是非常意外,微微失落之余,反而隐隐有点高兴,这丫头终于有多的时间可以用来复习准备考研了。
晚上回来,习惯性地打开木耳的页面,居然发现这丫头还是跟平常一样在唠,看了一下才发现原因,打电话确认了一下,真是替她感到高兴。
不过也有难过的事,居然说我变心快,这丫头就是疑神疑鬼太厉害了,都半年了一直这样。倒是我想回敬她这句话的。怎么她这个白羊女跟双鱼男一样的严重缺乏安全感啊。别说快了,明明连变都没有变,明明是我这两个月来精神被折磨得支离破碎。
我以前都说过了,我总是爱屋及乌恨屋及乌并夸大影响,但人们都只注意到了前一个词,却不留心我特意加上的后一个词。
好好赚钱,好好享受,一定要记住这黎明前最黑暗的日子。
这些天发现可以通过MS Exchange把Google Calendar,Google Contacts和Gmail同步到iOS设备上,还可以同步到Nokia C7上,于是一直在折腾。
有时候同步会有延时,还有,发现如果Google Contacts里的生日只填月日,不填年份的话,貌似不能正常识别并使用,比如在iOS上会把联系人的生日那天在Calendar上标记出来,但没有年份的话是不会标记的,因为压根没有从Google Contacts同步过来。
除了联系人和日历外,邮件也是很有用的,用Exchange在线维护感觉很好,不过本来想的是Gmail可以通过pop3来收取其他邮箱的邮件,但是很头痛的发现它连接不到网易邮箱的pop3服务器,总是报连接超时,但连接hotmail没有问题,而用hotmail通过pop3连接网易邮箱又是可以的!这谷歌和微软在对华公关上做得差距有点大,当然可能是因为微软是得罪不起,而谷歌没这么不可或缺。于是只好先用hotmail把网易的邮件收下来,再用Gmail把hotmail都收过来,然后根据收件人把邮件打上不同的label。
另外有个问题是,我在电脑上,无论是XP还是Mac上都配置不好客户端的Exchange连接,Outlook 2003,Foxmail 7.0以及Mac Mail,都说连接不上m.google.com,这就很头痛了!要继续研究下。
昨天就说好了的,今天中饭是吃的那小丫头送来的便当,唔,真是个傻丫头,好大的份量,饭也多菜也多,撑死我了,而且还有一盒雀巢柠檬茶,傻乎乎的。
下午4点多,卓越送书的终于来了,4本跟debugging相关的书以及一本《CLR via C#》第三版大砖头。叹气,其实我不会怎么看的吧,而且其实我最想看的内容是怎么进行postmortem debugging,可是……
突然想到《君が望む永遠》了,叹气,是要那么纠结一场才会尘埃落定么?
今天墨墨晓晓和木耳过来七宝,也没有什么玩的。
中午去老街里面吃汤圆,然后回到我住处,4个人这么呆坐了一下午,各自上推,除了晓晓玩了会儿游戏。不是自己的地方,果然怎么都弄不出那种味道来,连电视都没有接有线电视或数字电视。
到五点就去接头暗号吃烤肉,39块钱一人,一桌再加3块钱酱料钱,实在很优惠了。吃了2个小时,撑到了!
然后就送他们到地铁站。
又想起《水果篮子》那句经典的话。
好吧,才发现文章少了一篇还是两篇,估计是换服务器时没留意,数据没同步过来。
今天跟老大谈了下,老大说希望我以后主要研究下Dr.Watson这玩意,另外再加一两个features吧。哈哈,我正好对WinDBG比较有兴趣,我想如果能用WinDBG达到像用VS里的JIT-debugger的熟练程度,那用GDB应该也能比较快上手了吧。
不过这里说用Dr.Watson主要是进行postmortem debugging,也就是说对core dump文件进行分析,可是今天发现,这些core dump文件都是mini dump的,没有包含足够的内存数据,比如heap上的东西就查看不了,这比较纠结,而AWD这书基本上讲是的用WinDBG进行live debugging,叹气!
算了,先不管那么多,肯定随着经验的增加,postmortem debugging的水平也会提高的。星期天上卓越把几本关于.NET、C#以及调试和逆向工程的书买来。
今天终于从服务器上找到几个没因为too old而被删掉的core dump文件,于是祭出WinDBG进行分析。
最大的障碍还是对WinDBG不熟,以及对常用的分析方法不了解。
不过发现一个奇怪的事情。程序是在Win API里崩溃的,该API接受两个字符串作为参数,所以一般说来我们可以认为是作为参数的字符串有问题。通过call stack终于找到最早的这两个字符串的出生地,是两个std::wstring,被const_cast强行对.c_str()的返回值进行转换然后传递出去。所以说,如果call stack没有问题的话,应该是这std::wstring对象的问题了。因为从dump文件中看到TCHAR*的值确实是指向一个不知道什么地方的地方,反正dd是看不出来的,于是dt -r查看这两个std::wstring对象,发现其中的其中的ptr域确实就是指向不知道什么地方去了。好了,奇怪的事情被我发现了,这个函数里,有两个std::wstring对象占用的是同一个内存地址!一开始我的直觉是这不可能,难道是dump文件的问题,或者是release buiding优化后就读不到正确的内容了?我看了一下代码,发现这两个对象是存在于不同的scope中的,有不同的生命周期,嗯,这是从C++对象模型的角度的说法,但实际上编译器会怎么实现,我是一点都没头绪的。我跟老大说了一下,他也认为是dump文件的问题,然后我打开第二个core dump文件,发现了同样的问题。于是虽然老大仍然坚持他的意见,我已经有点动摇了。
好奇怪呀呀呀!