Shell里有很多命令用来查看/管理/调试RTP,最基本的应该就是组件INCLUDE_RTP_SHOW带来的rtpShow()
BOOL rtpShow
(
char *rtpNameOrId,/* RTP name or ID or NULL */
int level /* 0 = summary,
1 = detailed,
2 = all in details */
);
而要想查看RTP的内存信息,可以用rtpMemShow()
STATUS rtpMemShow
(
char *rtpNameOrId,/* RTP name or ID */
int level /* 0 = summary,
1 = detailed,
2 = also POSIX mapped file and
mapped object information */
);
这里面包含RTP内部的地址分配
以及共享数据区的使用,更详细的可以使用组件INCLUDE_SHARED_DATA_SHOW的sdShow()来查看
BOOL sdShow
(
char *sdNameOrId, /* SD name or ID */
int level /* 0 = summary, 1 = detailed, 2 = all */
);
以及POSIX mmap()映射的对象,也可以直接使用mmanRtpContextShow()和mmanRtpMapShow()来查看,或者使用mmapShow()
void mmanRtpContextShow
(
RTP_ID rtpId
);
void mmanRtpMapShow
(
RTP_ID rtpId
);
要想查看RTP内部的任务,除了常用的i()/taskShow(),还可以使用rtpi()/rtpTaskShow()
STATUS rtpi
(
long rtpId /* 0 for task's RTP */
);
要想查看RTP的共享库,可以使用组件INCLUDE_SHL_SHOW的shlShow()和rtpShlShow()
BOOL shlShow
(
SHL_ID shlId,
int level /* 0 = summary, 1 = detailed, 2 = all */
);
STATUS rtpShlShow
(
RTP_ID rtpId
);
要想查看RTP使用的Hook,可以使用INCLUDE_RTP_SHOW的rtpHookShow()
要看查看RTP内部的符号信息,除了常用的lkup()和lkAddr(),还可以使用rtpLkup()和rtpLkAddr()
void rtpLkup
(
char *substr,
long rtpId
);
void rtpLkAddr
(
unsigned long addr,
long rtpId
);
要想查看RTP内部的对象信息,除了常用的show()/objShow()/objShowAll(),还可以使用组件INCLUDE_OBJECT_SHOW的objHandleTblShow()和objHandleShow()
void objHandleTblShow
(
RTP_ID rtpId,
int count /* number to display, 0 to display all */
);
STATUS objHandleShow
(
OBJ_HANDLE objHandle,
RTP_ID rtpId
);
要想查看RTP使用的IO,除了常用的iosFdShow(),还可以使用iosRtpFdShow()
STATUS iosRtpFdShow
(
RTP_ID rtpId /* 0 for Kernel */
);