找回密码
 注册
搜索
查看: 1477|回复: 16

[讨论] 跟代码请教

[复制链接]
发表于 2010-7-22 14:33:59 | 显示全部楼层 |阅读模式
我知道跟softkey时可以在execute_softkey_function函数里面设断点跟,但跟方向键和键盘按键输入内容时在什么函数里面设断点跟?我是新手,请高手指点,谢谢!
发表于 2010-7-25 01:25:32 | 显示全部楼层
本帖最后由 wongshan 于 2013-12-25 14:27 编辑
以下是引用hztianxie在2010-7-22 15:09:44的发言:
我给个建议

我欣赏LS各位会使用模拟器和设置断点的兄弟

我来说说我的经验

我向来不用什么仿真器或者模拟器来跟代码,也做了这么几年嵌入式了

我看代码就是一层一层递推上去,什么调用什么,一层一层,很清楚。也知道了事情的来龙去脉


呵,好好好
点评回复

使用道具 举报

发表于 2010-7-23 13:21:21 | 显示全部楼层
以下是引用Robinx在2010-7-23 10:31:03的发言:



小弟佩服!


我很自卑的,你不要佩服我。
点评回复

使用道具 举报

发表于 2010-7-23 13:19:40 | 显示全部楼层
不要关心什么按键,softkey之类的。。。换个平台你还会吗???
点评回复

使用道具 举报

发表于 2010-7-23 13:09:15 | 显示全部楼层
ExecutecurrKeyHandler
点评回复

使用道具 举报

发表于 2010-7-23 10:31:03 | 显示全部楼层
以下是引用hztianxie在2010-7-22 15:09:44的发言:
我给个建议

我欣赏LS各位会使用模拟器和设置断点的兄弟

我来说说我的经验

我向来不用什么仿真器或者模拟器来跟代码,也做了这么几年嵌入式了

我看代码就是一层一层递推上去,什么调用什么,一层一层,很清楚。也知道了事情的来龙去脉



小弟佩服!
点评回复

使用道具 举报

发表于 2010-7-23 10:12:30 | 显示全部楼层
以下是引用hztianxie在2010-7-22 15:09:44的发言:
我给个建议

我欣赏LS各位会使用模拟器和设置断点的兄弟

我来说说我的经验

我向来不用什么仿真器或者模拟器来跟代码,也做了这么几年嵌入式了

我看代码就是一层一层递推上去,什么调用什么,一层一层,很清楚。也知道了事情的来龙去脉



要是调用的函数太多,如何知道是从哪个函数传过来的呢,模拟器还是不错的代码调试和跟踪方式
点评回复

使用道具 举报

发表于 2010-7-23 10:00:42 | 显示全部楼层
zhangrong0 说得很对
点评回复

使用道具 举报

发表于 2010-7-23 08:29:17 | 显示全部楼层
zhangrong0 说得很对
点评回复

使用道具 举报

发表于 2010-7-22 16:17:31 | 显示全部楼层
exec_key_handler
执行键盘按键响应函数
execute_softkey_function
执行屏幕软键响应函数

LZ,既然已经知晓exec_key_handler会在有画面迁移的时候调用,为什么不去试试数字键和其他情况下的调用情况呢?
点评回复

使用道具 举报

 楼主| 发表于 2010-7-22 16:10:02 | 显示全部楼层
通过EntryNewScreen来跟方向键和数字键是不行的,因为操作方向键和数字键是不会触发EntryNewScreen,通常方向键和数字键在代码里面都是执行默认的处理函数,不像softkey那样,在进入每个screen时可以找到注册处理softkey的代码,但方向键和数字键之类的,就见不到注册处理它们的代码,这就是比较让我费解的地方,如果想在按方向键和数字键后做一些自己想做的事情,可以有哪些实现的手段?
点评回复

使用道具 举报

发表于 2010-7-22 15:09:44 | 显示全部楼层
我给个建议

我欣赏LS各位会使用模拟器和设置断点的兄弟

我来说说我的经验

我向来不用什么仿真器或者模拟器来跟代码,也做了这么几年嵌入式了

我看代码就是一层一层递推上去,什么调用什么,一层一层,很清楚。也知道了事情的来龙去脉
点评回复

使用道具 举报

发表于 2010-7-22 15:02:24 | 显示全部楼层
事实上 ,我看到问题的时候也不知道断点下在哪里。
如下,是我的寻找步骤:
1,开模拟器,这个理所当然的。
2,待进入idle界面,在EntryNewScreen下断点。我想,当我按下方向键,画面必定会进行迁移,触发EntryNewScreen。这样,在模拟器中,大概能够看到调用EntryNewScreen之前运行过的函数,也许其中就有方向键的调用流程。试试先。
EntryNewScreen
EntryShctInIdle()
ShctExecuteUpKey()
exec_key_handler
mmi_key_handle
dev_key_handle
mmi_frm_key_handle
mmi_frm_execute_current_protocol_handler
ProtocolEventHandler
MMI_task(task_entry_struct * 0x01f81f1c)
以上,是跟出来的函数调用流程。
仔细看看,exec_key_handler似乎是方向键的断点处。ShctExecuteUpKey是上方向键的。
当然,不同画面注册的键函数是不同的,但是,几乎所以的键盘按键都会响应exec_key_handler,LZ可以尝试看看。

好了 ,对于新手,重要的不是知道结果,而是寻找结果的方法,希望能够帮到你。
点评回复

使用道具 举报

 楼主| 发表于 2010-7-22 14:45:49 | 显示全部楼层
感觉跟方向键和数字键输入内容时,没有跟软键的执行代码时那么的简单,软键的处理函数可以在execute_softkey_function里面直接跟到,但方向键和键盘按键比较的复杂啊,我很难掌控,请高手指点
点评回复

使用道具 举报

发表于 2010-7-22 14:36:15 | 显示全部楼层
做了多年嵌入式,却不会设断点,不会用仿真器来DEBUG的,汗颜飘过
点评回复

使用道具 举报

发表于 2010-7-31 17:11:10 | 显示全部楼层
新手,只知道6235平台下可以在keybrd.c下mmi_frm_execute_curr_key_handler_int(S16 mmi_key_code, S16 mmi_key_type, U16 ucs2_value, U32 special_key_flag)中   (*currFuncPtr)();    加断点,案按键操作都会经过这里。
点评回复

使用道具 举报

发表于 2010-8-5 00:49:20 | 显示全部楼层
新手路过,学习+赚分
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-5 10:19 , Processed in 0.074905 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表