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

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

?? main.c

?? winNT技術操作系統,國外開放的原代碼和LIUX一樣
?? C
?? 第 1 頁 / 共 3 頁
字號:
            {
                printf("LOADER: Error on loading debugger! (exitstatus = %u)\n",WEXITSTATUS(status));
                err = WEXITSTATUS(status);
            }
            break;
    }

    return err;
}

///////////////////////////////////////////////////////////////////////////////////
// tryuninstall()
//
///////////////////////////////////////////////////////////////////////////////////
int tryuninstall(void)
{
    char *argv[]={"/sbin/rmmod","pice",NULL};
    int err = 0;
    int pid,status;

    banner();
    printf("LOADER: trying to remove debugger...\n");

    // check for loaded debugger
    if(open_debugger() == INVALID_HANDLE_VALUE)
    {
        return -1;
    }
    // don't to close, else we'll have a reference count != 0
    close_debugger();

    // create a separate thread
    pid = fork();
    switch(pid)
    {
        case -1:
            // error when forking, i.e. out E_NOMEM
            err = errno;
            printf("LOADER: fork failed for execution of '%s' (errno=%u).\n",argv[0],err);
            break;
        case 0:
            // child process handler
            execve(argv[0],argv,NULL);
            // returns only on error, with return value -1, errno is set
            printf("LOADER: couldn't execute '%s' (errno = %u)\n",argv[0],errno);
            exit(255);
            break;
        default:
            // parent process handler
            printf("LOADER: waiting for debugger to unload...\n");
            pid = waitpid(pid, &status, 0); // suspend until child is done

            if( (pid>0) && WIFEXITED(status) && (WEXITSTATUS(status) == 0) )
                printf("LOADER: debugger removed!\n");
            else if( pid<=0 )
            {
                printf("LOADER: Error on removing debugger! (waitpid() = %i)\n",pid);
                err = -1;
            }
            else if( !WIFEXITED(status) )
            {
                printf("LOADER: Error on removing debugger! (ifexited = %i)\n",WIFEXITED(status));
                err = -1;
            }
            else
            {
                printf("LOADER: Error on removing debugger! (exitstatus = %u)\n",WEXITSTATUS(status));
                err = WEXITSTATUS(status);
            }
            break;
    }
    return err;
}
#endif

///////////////////////////////////////////////////////////////////////////////////
// showstatus()
//
///////////////////////////////////////////////////////////////////////////////////
void showstatus(void)
{
    DEBUGGER_STATUS_BLOCK sb;
    int iRetVal;

	if(open_debugger() != INVALID_HANDLE_VALUE)
	{
		iRetVal = ioctl(debugger_file,PICE_IOCTL_STATUS,&sb);

        //printf("LOADER: Test = %X\n",sb.Test);
		close_debugger();
	}
}

///////////////////////////////////////////////////////////////////////////////////
// dobreak()
//
///////////////////////////////////////////////////////////////////////////////////
void dobreak(void)
{
    int iRetVal;

	if(open_debugger() != INVALID_HANDLE_VALUE)
	{
		iRetVal = ioctl(debugger_file,PICE_IOCTL_BREAK,NULL);
		close_debugger();
	}
}

///////////////////////////////////////////////////////////////////////////////////
// doterminal()
//
///////////////////////////////////////////////////////////////////////////////////
#if 0
void doterminal(void)
{
    if(SetupSerial(2,B115200))
    {
        DebuggerShell();
        CloseSerial();
    }
}
#endif

///////////////////////////////////////////////////////////////////////////////////
// process_switches()
//
// returns !=0 in case of a commandline error
//
///////////////////////////////////////////////////////////////////////////////////
int process_switches(int argc,char* argv[])
{
	int i;
	char* parg,*pfilename = NULL;
	int action = ACTION_NONE;
	int error = 0;

    // parse commandline arguments
	for(i=1;i<argc;i++)
	{
		parg = argv[i];
		if(*parg == '-')
		{
		    int new_action=ACTION_NONE;

			parg++;
			if(strcmp(parg,"load")==0 || strcmp(parg,"l")==0)
			{
				new_action = ACTION_LOAD;
			}
			else if(strcmp(parg,"unload")==0 || strcmp(parg,"u")==0)
			{
				new_action = ACTION_UNLOAD;
			}
			else if(strcmp(parg,"trans")==0 || strcmp(parg,"t")==0)
            {
                new_action = ACTION_TRANS;
            }
			else if(strcmp(parg,"reload")==0 || strcmp(parg,"r")==0)
            {
                new_action = ACTION_RELOAD;
            }
			else if(strcmp(parg,"verbose")==0 || strcmp(parg,"v")==0)
            {
			    if( ulGlobalVerbose+1 > ulGlobalVerbose )
				    ulGlobalVerbose++;
            }
			else if(strcmp(parg,"install")==0 || strcmp(parg,"i")==0)
            {
                new_action = ACTION_INSTALL;
            }
			else if(strcmp(parg,"uninstall")==0 || strcmp(parg,"x")==0)
            {
                new_action = ACTION_UNINSTALL;
            }
			else if(strcmp(parg,"status")==0 || strcmp(parg,"s")==0)
            {
                new_action = ACTION_STATUS;
            }
			else if(strcmp(parg,"break")==0 || strcmp(parg,"b")==0)
            {
                new_action = ACTION_BREAK;
            }
			else if(strcmp(parg,"serial")==0 || strcmp(parg,"ser")==0)
            {
                new_action = ACTION_TERMINAL;
            }
			else
			{
				printf("LOADER: error: unknown switch %s", argv[i]);
				error = 1;
			}

            if( new_action != ACTION_NONE )
            {
                if( action == ACTION_NONE )
                    action = new_action;
                else
                if( action == new_action )
                {
                    // identical, just ignore
                }
                else
                {
                    printf("LOADER: error: conflicting switch %s", argv[i]);
                    error = 1;
                }
            }
		}
		else
		{
            if( pfilename )
            {
                printf("LOADER: error: additional filename %s", parg);
                error = 1;
            }
			pfilename = parg;
		}
	}

    // check number of required parameters
    switch( action )
    {
        case ACTION_TRANS :
        case ACTION_LOAD :
        case ACTION_UNLOAD :
            if( !pfilename )
            {
                printf("LOADER: error: missing filename\n");
                error = 1;
            }
            break;
        case ACTION_RELOAD :
            /* filename parameter is optional */
            break;
#if 0
        case ACTION_UNINSTALL:
            close_debugger();
            tryuninstall();
            break;
        case ACTION_INSTALL:
            tryinstall();
            break;
#endif
        case ACTION_STATUS:
            showstatus();
            break;
        case ACTION_BREAK:
            dobreak();
            break;
#if 0
        case ACTION_TERMINAL:
            doterminal();
            break;
#endif
        case ACTION_NONE :
            printf("LOADER: no action specified specifed on commandline\n");
            error = 1;

            break;
        default :
            printf("LOADER: an internal error has occurred at commandline parsing\n");
            error = 1;
    }

    if( !error )    // commandline was fine, now start processing
    {
        switch( action )
        {
            case ACTION_TRANS :
                printf("LOADER: trying to translate file %s...\n",pfilename);
                if( process_file(pfilename)==0 )
                    printf("LOADER: file %s has been translated\n",pfilename);
                else
                    printf("LOADER: error while translating file %s\n",pfilename);
                break;
            case ACTION_LOAD :
            case ACTION_UNLOAD :
            case ACTION_RELOAD :
                change_symbols(action,pfilename);
                break;
        }
    }

    return error;
}


///////////////////////////////////////////////////////////////////////////////////
// showhelp()
//
///////////////////////////////////////////////////////////////////////////////////
void showhelp(void)
{
    banner();
    printf("LOADER: Syntax:\n");
    printf("LOADER:         loader [switches] [executable/object file path]\n");
    printf("LOADER: Switches:\n");
    printf("LOADER:         -trans      (-t):   translate from exe to sym\n");
    printf("LOADER:         -load       (-l):   load symbols\n");
    printf("LOADER:         -unload     (-u):   unload symbols\n");
    printf("LOADER:         -reload     (-r):   reload some/all symbols\n");
    printf("LOADER:         -verbose    (-v):   be a bit more verbose\n");
    printf("LOADER:         -install    (-i):   install pICE debugger\n");
    printf("LOADER:         -uninstall  (-x):   uninstall pICE debugger\n");
    printf("LOADER:         -break      (-b):   break into debugger\n");
    printf("LOADER:         -serial     (-ser): start serial line terminal\n");
}

///////////////////////////////////////////////////////////////////////////////////
// showpermission()
//
///////////////////////////////////////////////////////////////////////////////////
void showpermission(void)
{
    banner();
    printf("LOADER: You must be superuser!\n");
}

///////////////////////////////////////////////////////////////////////////////////
// main()
//
///////////////////////////////////////////////////////////////////////////////////
int main(int argc,char* argv[])
{
    if(argc==1 || argc>3)
    {
		showhelp();

		return 1;
    }

	return process_switches(argc,argv);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦一区二区三区观看体验| 国产美女娇喘av呻吟久久| 91国偷自产一区二区开放时间 | 国产自产视频一区二区三区| 99久久99久久精品国产片果冻| 久久午夜国产精品| 日韩国产欧美三级| 91网站最新网址| 欧美国产成人精品| 国产一区二区0| 7777精品伊人久久久大香线蕉经典版下载 | 黄色日韩网站视频| 精品国产乱码91久久久久久网站| 日韩国产欧美三级| 色网站国产精品| 日韩精品亚洲一区二区三区免费| 色欧美日韩亚洲| 国产精品理伦片| 国产999精品久久久久久绿帽| 欧美一级理论片| 日韩成人免费电影| 欧美一区二区在线免费观看| 亚洲欧美另类综合偷拍| 在线免费观看视频一区| 视频一区在线播放| 日韩欧美一卡二卡| 国内精品第一页| 亚洲欧美一区二区三区极速播放| av电影一区二区| 亚洲自拍偷拍欧美| 欧美性大战久久久久久久| 亚洲欧美欧美一区二区三区| 欧美写真视频网站| 国产成人免费网站| 亚洲一区二区三区在线| 欧美人伦禁忌dvd放荡欲情| 老司机精品视频导航| 中文字幕一区二区三区在线观看 | 麻豆精品在线播放| 国产精品成人网| 欧美性大战久久久| 成人av电影在线观看| 亚洲国产婷婷综合在线精品| 国产亚洲污的网站| 欧美区一区二区三区| 国产69精品久久久久毛片| 亚洲欧洲三级电影| 正在播放一区二区| 在线视频一区二区三区| 国产精品资源站在线| 亚洲小说欧美激情另类| 国产午夜精品在线观看| 91精品国产综合久久久蜜臀粉嫩| 色婷婷国产精品久久包臀| 精品一区二区免费视频| 亚洲欧美经典视频| 亚洲伦在线观看| 国产亚洲欧美激情| 一区二区三区精品视频在线| 日本一区二区免费在线| 欧美高清视频www夜色资源网| 成人av电影在线| 国产馆精品极品| 午夜精品久久久久久| 日本视频一区二区三区| 欧美精品一区二区蜜臀亚洲| 成人免费av在线| 成人福利视频在线看| 色一情一乱一乱一91av| 欧美日韩免费高清一区色橹橹| 色诱亚洲精品久久久久久| 波多野结衣一区二区三区| 不卡一卡二卡三乱码免费网站 | 国产在线播放一区三区四| 日韩一区精品字幕| 免费成人在线播放| 免费人成网站在线观看欧美高清| 亚洲高清视频的网址| 亚洲一二三四在线| 日韩专区中文字幕一区二区| 亚洲一区在线视频| 青青草原综合久久大伊人精品| 亚洲一区二区三区美女| 日韩精品成人一区二区三区| 另类小说一区二区三区| 国产成人午夜电影网| 日本韩国一区二区| 欧美亚洲综合网| 欧美一区二区免费| 精品国产一区二区三区久久久蜜月| 久久综合成人精品亚洲另类欧美 | 亚洲欧洲日韩av| 亚洲欧美乱综合| 久久99久久99| 99久久久精品免费观看国产蜜| 欧美日韩视频在线一区二区 | 亚洲高清视频中文字幕| 丝瓜av网站精品一区二区| 国产经典欧美精品| 欧美综合在线视频| 日韩一区二区三区高清免费看看| 久久久久久久久久久久久夜| 日韩美女视频一区二区| 日韩精品一卡二卡三卡四卡无卡| 国产裸体歌舞团一区二区| 91国偷自产一区二区使用方法| 日韩免费观看高清完整版在线观看| 日本一区二区免费在线| 日韩经典一区二区| 色综合天天综合网天天看片| 日韩无一区二区| 玉米视频成人免费看| 国产69精品久久99不卡| 在线成人小视频| 亚洲资源在线观看| 国产99久久久国产精品潘金| 91麻豆精品91久久久久同性| 中文字幕中文字幕在线一区| 香蕉久久一区二区不卡无毒影院| 国产.欧美.日韩| 欧美日韩久久久一区| 亚洲人亚洲人成电影网站色| 韩日精品视频一区| 日韩亚洲欧美中文三级| 99久久综合精品| 国产日产欧美一区| 国产一区二区女| 精品国产一区二区三区av性色| 亚洲一线二线三线视频| 91麻豆精品一区二区三区| 中文在线一区二区| 成人禁用看黄a在线| 日韩免费电影一区| 麻豆免费看一区二区三区| 日韩一卡二卡三卡| 精品中文av资源站在线观看| 欧美成人乱码一区二区三区| 奇米777欧美一区二区| 日韩美女视频在线| 玖玖九九国产精品| 7878成人国产在线观看| 日本色综合中文字幕| 欧美一级搡bbbb搡bbbb| 午夜精品国产更新| 日韩免费观看高清完整版在线观看| 久久av资源网| 国产欧美日韩三区| 色综合天天狠狠| 日韩和欧美的一区| 精品久久一二三区| 国v精品久久久网| 亚洲三级免费电影| 在线91免费看| 国产成人在线视频播放| 亚洲欧美国产77777| 欧美日韩不卡在线| 国产麻豆一精品一av一免费 | 色八戒一区二区三区| 日韩精品午夜视频| 国产欧美日韩久久| 欧美猛男超大videosgay| 狠狠狠色丁香婷婷综合久久五月| 中文字幕在线免费不卡| 欧美色中文字幕| 高清不卡一二三区| 在线观看国产日韩| 国产乱码精品一区二区三区五月婷| 亚洲欧美日韩综合aⅴ视频| 91精品国产欧美一区二区18| 成人在线综合网| 久久99国产精品久久99| 亚洲精品国产无套在线观 | 国产精品狼人久久影院观看方式| 欧美美女视频在线观看| 99久久精品免费观看| 国产精品主播直播| 黄页网站大全一区二区| 亚洲一区二区三区三| 国产精品色哟哟网站| 日韩欧美www| 欧美一级高清片在线观看| 91国产视频在线观看| 成人精品电影在线观看| 国产999精品久久久久久| 日韩激情视频在线观看| 夜色激情一区二区| 亚洲欧美成aⅴ人在线观看| 国产三级欧美三级| 精品国产亚洲在线| 欧美成人官网二区| 欧美成人r级一区二区三区| 宅男噜噜噜66一区二区66| 欧美性xxxxxx少妇| 精品少妇一区二区三区日产乱码 | 一区二区三区欧美日| 亚洲不卡在线观看| 精品一区二区三区久久| 国产精品一区二区在线观看网站| 成人精品视频一区二区三区尤物| 日本韩国一区二区三区|