现在的位置: 首页 > 综合 > 正文

MTK快速调试定位的几种方法

2019年08月28日 ⁄ 综合 ⁄ 共 1926字 ⁄ 字号 评论关闭

在debug调试时你也许常常发现有思路如何改,但就苦于找不到要改的地方。所以快速的定位代码是至关重要。

在debug时,最重要的是能够准确快速的定位代码,一般常用的有如下几种方式

1.在模拟器中使用断点

模拟器中断跟踪断点设置函数:
// 触屏相关 wgui_touch_screen.c
wgui_general_pen_down_hdlr // 触摸屏按下函数
wgui_general_pen_move_hdlr // 触摸屏移动函数
wgui_general_pen_down_hdlr // 触摸屏松开函数
wgui_general_pen_repeat_hdlr // 重复
wgui_general_pen_abort_hdlr // 放弃操作

在wingui.c 此函数中setup_UI_wrappers有相关全局变量的初始赋值和定义
EntryNewScreen    // 进入一个新的screen都会调用的函数
ExecuteCurrKeyHandler // 执行按键的函数
ExecuteCurrHiliteHandler
ExecuteCurrHiliteHandler_Ext // 执行当前高亮的函数
ExecuteCurrProtocolHandler   //执行当前协议栈的函数
execute_softkey_function   //执行softkey的函数
UI_fill_rectangle       // 填充一个矩形框
UI_draw_vertical_line     // 画一条垂直线
UI_draw_horizontal_line    // 画一条水平线
UI_draw_dotted_horizontal_line //水平虚线
UI_draw_dotted_vertical_line // 垂直虚线
UI_print_text         // 画一个字符串
UI_print_bordered_text    // 画一个有边色字符串
UI_print_text_n        // 画一个有n个字符的字符串
UI_print_bordered_text_n // 画一个有n个字符的带边框色字符串
UI_print_bordered_character //画一个的带边框色字符
UI_print_character      //画一个字符
gdi_image_draw        //从绘图事件开始跟踪的函数
_show_image          // 画一个gif
_show_transparent_image    //画有设透明色的图片
_show_animation_frame     // 画设置祯数的图片
gdi_layer_blt_previous    // 同一个layer刷新某一区域的函数
gdi_layer_blt_ext       // 几个layer叠加显示时刷新某一区域的函数
UI_BLT_double_buffer     //刷新一块区域
UI_set_font          //设置字体
3。在模拟器中设置变量值改变的断点
4。搜索菜单ID 如MAIN_MENU_ENTERTAINMENT_MENU_ID
5。搜索字符串ID如MAIN_MENU_MENU_TEXT
6。搜索图片ID 如MAIN_MENU_PHONEBOOK_ICON
7. 超级终端调试:
8.Catcher调试

 

2.MMI绘制设置断点

跟踪屏幕每一处字串绘制:
设置断点UI_move_text_cursor:
gui_move_text_cursor =UI_move_text_cursor

图标测量:
设置断点_measure_image
gui_measure_image = _measure_image

图标显示:

设置断点_show_image
gui_show_image = _show_image

水平线和垂直线的绘制:

设置断点UI_draw_vertical_line和UI_draw_horizontal_line

gui_draw_vertical_line = UI_draw_vertical_line;
gui_draw_horizontal_line = UI_draw_horizontal_line;

字串测量、坐标位置、打印:

设置断点UI_print_text、UI_measure_string 、 UI_move_text_cursor
gui_measure_string = UI_measure_string
gui_move_text_cursor =UI_move_text_cursor
gui_print_text =UI_print_text

绘制图片的函数:
gdi_image_draw->gdi_image_codec_draw

【上篇】
【下篇】

抱歉!评论已关闭.