亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trclib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	(* _func_printErr) ("%x", args[ix]);	}    if (doingDefault)	(* _func_printErr) ("]");    (* _func_printErr) (")\n");    }/****************************************************************************** trcFindCall - get address from which function was called** RETURNS: address from which current subroutine was called, or NULL.*/LOCAL INSTR *trcFindCall    (    INSTR *returnAdrs           /* return address */    )    {    FAST INSTR *addr;    /* starting at the word preceding the return adrs, search for jsr or bsr */    for (addr = returnAdrs - 1; addr != NULL; --addr)	if (((*addr & 0xffc0) == 0x4e80) || ((*addr & 0xff00) == 0x6100))	    return (addr);		/* found it */    return (NULL);			/* not found */    }/****************************************************************************** trcFindDest - find destination of call instruction** RETURNS: address to which call instruction (jsr) will branch, or NULL if* unknown*/LOCAL INSTR *trcFindDest    (    INSTR *callAdrs    )    {    if (*callAdrs == JSR_ABS)			/* jsr absolute long mode? */	return ((INSTR *) *(int *)(callAdrs + 1));	/* return next long */    return (NULL);				/* don't know destination */    }/****************************************************************************** trcCountArgs - find number of arguments to function** This routine finds the number of arguments passed to the called function* by examining the stack-pop at the return address.  Many compilers offer* optimization that defeats this (e.g., by coalescing stack-pops), so a return* value of 0 may mean "don't know".** RETURNS: number of arguments of function*/LOCAL int trcCountArgs    (    FAST INSTR *returnAdrs              /* return address of function call */    )    {    FAST INSTR inst;    FAST int nargs;    FAST int tmpNargs;    nargs = 0;    /* if inst is a BRA, use the target of the BRA as the returnAdrs */    returnAdrs = trcFollowBra (returnAdrs);    inst = *returnAdrs;		/* get the instruction */    if (inst == ADD_W)	nargs = *(returnAdrs + 1) >> 2;		/* ADD.W */    else if (inst == ADD_L)	nargs = *(int *)(returnAdrs + 1) >> 2;	/* ADD.L */    else if (((inst & 0xF1FF) == ADDQ_W) || ((inst & 0xF1FF) == ADDQ_L))	{	/* there may be multiple addq's at the return addrs */	do	    {	    /* get the number of bytes and div by 4 to get the number of args */	    tmpNargs = (inst & 0x0E00) >> 11;	/* ADDQ.L or ADDQ.W */	    if (tmpNargs == 0)	    	tmpNargs = 2;			/* 0 => 8 in quick mode */	    nargs += tmpNargs;	    returnAdrs++;			/* sizeof ADDQ */	    inst = *returnAdrs;			/* check next instruction */	    } while (((inst & 0xF1FF) == ADDQ_W) || 		     ((inst & 0xF1FF) == ADDQ_L));	}    else if (inst == LEA_A7)	nargs = *(returnAdrs + 1) >> 2;		/* LEA $x(A7),A7 */    else if ((inst & 0xFFC0) == MOVE_L_A7)	nargs = 1;				/* MOVE.L xxx,(A7) */    else if (inst == MOVE_L_A6_A7)	nargs = 8;				/* MOVE.L (xxx,A6),A7						   # of args unknowable */    else	nargs = 0;				/* no args, or unknown */    return (nargs);    }/****************************************************************************** trcFindFuncStart - find the starting address of a function** This routine finds the starting address of a function by one of several ways.** If the given frame pointer points to a legitimate frame pointer, then the* long word following the frame pointer pointed to by the frame pointer should* be the return address of the function call.  Then the instruction preceding* the return address would be the function call, and the address can be gotten* from there, provided that the jsr was to an absolute address.  If it was,* use that address as the function address.  Note that a routine that is* called by other than a jsr-absolute (e.g., indirectly) will not meet these* requirements.** If the above check fails, we search backward from the given pc until a* LINK instruction is found.  If the compiler is putting LINK instructions* as the first instruction of ALL subroutines, then this will reliably find* the start of the routine.  However, some compilers allow routines, especially* "leaf" routines that don't call any other routines, to NOT have stack frames,* which will cause this search to fail.** In either of the above cases, the value is bounded by the nearest routine* in the system symbol table, if there is one.  If neither method returns a* legitimate value, then the value from the symbol table is used.  Note that* the routine may not be in the symbol table if it is LOCAL, etc.** Note that the start of a routine that is not called by jsr-absolute and* doesn't start with a LINK and isn't in the symbol table, may not be possible* to locate.*/LOCAL INSTR *trcFindFuncStart    (    int *fp,                    /* frame pointer resulting from function call */    FAST INSTR *pc              /* address somewhere within the function */    )    {    FAST INSTR *ip;		/* instruction pointer */    FAST INSTR *minPc;		/* lower bound on program counter */    int val;			/* address gotten from symbol table */    char name[MAX_SYS_SYM_LEN+1]; /* string associated with val */    SYM_TYPE type;		/* type associated with val */    /*     * if there is a symbol table, use value from table that's <= pc as     * lower bound for function start     */    minPc = NULL;    if ((sysSymTbl != NULL) && (_func_symFindByValue != NULL) &&	((* _func_symFindByValue) (sysSymTbl, (int) pc, name, 				   &val, &type) == OK))	{	minPc = (INSTR *) val;	}    /* try to find current function by looking up call */    if (fp != NULL)			/* frame pointer legit? */	{	ip = trcFindCall ((INSTR *) *(fp + 1));	if (ip != NULL)	    {	    ip = trcFindDest (ip);	    if ((ip != NULL) && (ip >= minPc) && (ip <= pc))		return (ip);	    }	}    /* search backward for LINK A6,#xxxx */    for (; pc >= minPc; --pc)	{	if (*trcFollowBra (pc) == LINK_A6)	    return (pc);		/* return address of LINK_A6 */	}    return (minPc);		/* return nearest symbol in sym tbl */    }/*********************************************************************** trcFollowBra - resolve any BRA instructions to final destination** This routine returns a pointer to the next non-BRA instruction to be* executed if the pc were at the specified <adrs>.  That is, if the instruction* at <adrs> is not a BRA, then <adrs> is returned.  Otherwise, if the* instruction at <adrs> is a BRA, then the destination of the BRA is* computed, which then becomes the new <adrs> which is tested as before.* Thus we will eventually return the address of the first non-BRA instruction* to be executed.** The need for this arises because compilers may put BRAs to instructions* that we are interested in, instead of the instruction itself.  For example,* optimizers may replace a stack pop with a BRA to a stack pop.  Or in very* UNoptimized code, the first instruction of a subroutine may be a BRA to* a LINK, instead of a LINK (compiler may omit routine "post-amble" at end* of parsing the routine!).  We call this routine anytime we are looking* for a specific kind of instruction, to help handle such cases.** RETURNS: address that chain of branches points to.*/LOCAL INSTR *trcFollowBra    (    FAST INSTR *adrs    )    {    FAST INSTR inst = *adrs;	/* 16 bit instruction at adrs */    FAST int displacement;    /* while instruction is a BRA, get destination adrs */    while ((inst & 0xff00) == 0x6000)	{	++adrs;			/* point to word following instr */	switch (inst & 0xff)	    {	    case 0:			/* 16 bit displacement */		displacement = (short) *adrs;		break;	    case 0xff:			/* 32 bit displacement */		displacement = (*adrs << 16) | *(adrs + 1);		break;	    default:			/* 8 bit displacement */		displacement = (char) (inst & 0xff);		/* check for branch to self, or to odd displacement */		if ((displacement == 0xfe) || (displacement & 0x01))		    return (--adrs);	/* don't follow it */		break;	    }	adrs = (INSTR *) ((char *) adrs + displacement);	inst = *adrs;		/* get the instruction */	}    return (adrs);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美视频一区二区三区| 精品国精品自拍自在线| 成人在线综合网| 国产寡妇亲子伦一区二区| 国产激情视频一区二区三区欧美 | 性欧美大战久久久久久久久| 亚洲综合激情另类小说区| 亚洲影院理伦片| 午夜久久电影网| 蜜臀av一区二区在线免费观看 | 中文字幕一区二区三区四区| 国产精品理论片| 亚洲欧美在线视频| 亚洲欧美日韩国产综合在线| 亚洲一二三四区| 秋霞国产午夜精品免费视频| 国产自产v一区二区三区c| 国产69精品一区二区亚洲孕妇| 国产91综合网| 欧美色图片你懂的| 日韩一区二区精品在线观看| 国产欧美一区二区精品性| 综合欧美亚洲日本| 亚洲地区一二三色| 国产一区二区不卡在线| 色域天天综合网| 日韩精品中文字幕在线一区| 国产精品久久久久影院亚瑟| 亚洲成av人在线观看| 国产在线视频一区二区三区| 国产成人精品www牛牛影视| 国产精品一二三| 日本韩国视频一区二区| 精品国产伦一区二区三区观看体验| 国产日韩成人精品| 亚洲婷婷综合久久一本伊一区| 亚洲一区二区三区在线看| 激情欧美日韩一区二区| 色哟哟一区二区| 国产日韩精品久久久| 丝袜亚洲另类欧美综合| 国产超碰在线一区| 91精品婷婷国产综合久久| 亚洲视频资源在线| 精品综合久久久久久8888| 91久久精品一区二区三区| www激情久久| 人人精品人人爱| 欧美日韩综合在线免费观看| 国产精品欧美久久久久一区二区| 蜜臀国产一区二区三区在线播放| 91麻豆免费看| 中文字幕乱码久久午夜不卡| 麻豆精品蜜桃视频网站| 91国偷自产一区二区使用方法| 久久婷婷色综合| 麻豆精品在线播放| 欧美一三区三区四区免费在线看| 自拍偷拍国产亚洲| 菠萝蜜视频在线观看一区| 久久久久久99精品| 看片的网站亚洲| 9191久久久久久久久久久| 国产精品灌醉下药二区| 大白屁股一区二区视频| 久久精品亚洲精品国产欧美kt∨ | 2欧美一区二区三区在线观看视频| 亚洲一区二区三区四区在线| 97成人超碰视| 亚洲美女在线国产| 在线国产电影不卡| 一区二区三区四区激情| 色婷婷av一区二区三区软件| 亚洲视频一区在线| 成人av午夜影院| 中文字幕va一区二区三区| 成人免费视频网站在线观看| 国产欧美1区2区3区| 国产一区二区在线免费观看| 精品欧美久久久| 国产一区二区三区精品视频| 国产欧美精品一区二区色综合 | 久久精品一区蜜桃臀影院| 精品一区二区三区免费播放| 26uuu精品一区二区三区四区在线| 欧美96一区二区免费视频| 日韩精品专区在线影院观看| 久久精品国产99| 国产女人水真多18毛片18精品视频| 国产精品一二三区| 一区二区三区在线观看欧美| 欧洲国内综合视频| 三级久久三级久久久| 777午夜精品视频在线播放| 蜜臀av在线播放一区二区三区| 欧美本精品男人aⅴ天堂| 国产91露脸合集magnet | 欧美日韩一二三区| 美腿丝袜亚洲色图| 久久久国际精品| www.99精品| 亚洲国产一区二区a毛片| 日韩精品一区二区三区视频| 国产成人免费视频网站高清观看视频| 久久精品一区二区三区四区| 91一区二区在线| 蜜桃在线一区二区三区| 国产欧美日韩不卡免费| 在线免费一区三区| 国产精品综合二区| 亚洲一区二区三区四区在线观看| 精品国产精品网麻豆系列| 国产成人av在线影院| 香港成人在线视频| 国产精品少妇自拍| 日韩一区二区精品在线观看| 色综合中文字幕国产| 亚洲在线视频免费观看| 精品国产乱码久久久久久久| 91蜜桃婷婷狠狠久久综合9色| 日韩福利视频网| 亚洲免费在线电影| 日本一区二区动态图| 日韩欧美在线一区二区三区| 色www精品视频在线观看| 国产激情视频一区二区在线观看| 亚洲专区一二三| 国产精品成人在线观看| 久久久久久久久久看片| 欧美一区二区三区四区五区| 91一区二区在线观看| 国产传媒一区在线| 精品一区二区三区在线观看| 亚洲va欧美va天堂v国产综合| 中文字幕综合网| 国产日产欧美精品一区二区三区| 在线播放视频一区| 99麻豆久久久国产精品免费优播| 精品午夜久久福利影院 | 久久综合九色欧美综合狠狠 | 国产福利91精品一区二区三区| 日本在线不卡视频| 亚洲图片一区二区| 亚洲五月六月丁香激情| 亚洲特黄一级片| 亚洲人成在线播放网站岛国| 日韩欧美国产一二三区| 日韩午夜电影av| 日韩美女主播在线视频一区二区三区 | 精品欧美一区二区久久| 日韩一级二级三级| 日韩欧美卡一卡二| 精品国免费一区二区三区| 欧美刺激午夜性久久久久久久| 日韩一区二区在线看| 日韩视频一区在线观看| 久久美女艺术照精彩视频福利播放| 日韩欧美精品三级| 久久久久高清精品| 亚洲欧洲av在线| 亚洲激情网站免费观看| 亚洲高清在线精品| 久久国产精品色| 国产一区二区不卡在线| 成人动漫一区二区三区| 色哟哟国产精品免费观看| 欧美三级在线播放| 欧美成人一级视频| 国产日韩在线不卡| 亚洲黄色小视频| 老司机免费视频一区二区| 国产98色在线|日韩| 在线视频一区二区免费| 欧美美女网站色| 精品日韩99亚洲| 亚洲视频综合在线| 天天影视网天天综合色在线播放| 国产综合成人久久大片91| 91麻豆成人久久精品二区三区| 欧美四级电影网| 日韩免费一区二区三区在线播放| 国产精品视频第一区| 亚洲高清免费视频| 国产露脸91国语对白| 日本韩国欧美一区| 日韩一区二区三区在线视频| 亚洲欧洲成人av每日更新| 免费成人美女在线观看| 99麻豆久久久国产精品免费优播| 欧美日韩在线观看一区二区 | 精品在线免费观看| 成人av在线一区二区三区| 欧美日韩三级在线| 中文欧美字幕免费| 日日夜夜一区二区| a4yy欧美一区二区三区| 日韩天堂在线观看| 一区二区免费在线播放| 国产成人av资源| 精品第一国产综合精品aⅴ|