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

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

?? watchpoints.c

?? 給予GTK開發的調試工具
?? C
字號:
//	bfe2 - memory watchpoints//	Copyright (c) 1999-2003 Brand Huntsman and Lee Salzman//#include "common.h"#include "functions.h"//////////////////////////////////////////////////////////////////////////// globals_watchpoint watchpoints[MAX_WATCHPOINTS];// localGtkWidget *wp_add_button, *wp_remove_button, *wp_removeall_button, *wp_address_text;GtkCList *wp_list;int selected_wp;uint nr_watchpoints;s_bgroup *wp_type;#define WP_COLUM_TITLES 4gchar *wp_column_titles[] = { "Last Stop", "Type", "Watchpoint", "Value" };char *wp_titles[] = { " Read ", " Write " };//////////////////////////////////////////////////////////////////////////void read_watchpoints( ){	char type[6], c, value[LEN_NUMBER];	uint n;	for(n = 0; n < MAX_WATCHPOINTS; n++) watchpoints[n].enabled = 0;	nr_watchpoints = 0;	fprintf(writepipe, "watch\n");	for(n = 0; n < MAX_WATCHPOINTS; n++){		c = fgetc(readpipe);		for(; (c != EOF) && (c != 'w') && (c != 'r') && (c != '<'); c = fgetc(readpipe));		if(c == EOF) return;		if((ungetc(c, readpipe) == EOF) || (c == '<')) break;		if(fscanf(readpipe, "%s %x (%s", type, &watchpoints[n].offset, value) != 3) break;		if(!strcmp(type, "read")) watchpoints[n].type = WP_READ;		else if(!strcmp(type, "write")) watchpoints[n].type = WP_WRITE;		else break;		value[strlen(value)-1] = '\0';		if(strlen(value) == 4) watchpoints[n].value_size = 2;		else if(strlen(value) == 8) watchpoints[n].value_size = 4;		else break;		sscanf(value, "%x", &watchpoints[n].value);		watchpoints[n].enabled = 1;		nr_watchpoints++;	}	prompt_read();	return;}void add_watchpoint( GtkWidget *widget, gpointer data ){	const char *address;	address = gtk_entry_get_text(GTK_ENTRY(wp_address_text));	switch(wp_type->current){	case WP_READ:		fprintf(writepipe, "watch read %s\n", address);		break;	case WP_WRITE:		fprintf(writepipe, "watch write %s\n", address);		break;	}	prompt_read();	if((int)data) watchpointsUpdate(WP_UPDATE);	gtk_entry_set_text(GTK_ENTRY(wp_address_text), "");}void remove_watchpoint( GtkWidget *widget, gpointer data ){	switch(watchpoints[selected_wp].type){	case WP_READ:		fprintf(writepipe, "unwatch read 0x%x\n", watchpoints[selected_wp].offset);		break;	case WP_WRITE:		fprintf(writepipe, "unwatch write 0x%x\n", watchpoints[selected_wp].offset);		break;	}	prompt_read();	watchpointsUpdate(WP_UPDATE);}void removeall_watchpoints( GtkWidget *widget, gpointer data ){	fprintf(writepipe, "unwatch\n");	prompt_read();	watchpointsUpdate(WP_UPDATE);}void wp_selected( GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data ){	selected_wp = row;	gtk_widget_set_sensitive(wp_remove_button, TRUE);}void wp_unselected( GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data ){	selected_wp = -1;	gtk_widget_set_sensitive(wp_remove_button, FALSE);}//////////////////////////////////////////////////////////////////////////void watchpointsInit( GtkWidget *vbox ){	GtkWidget *hbox, *vbox2;	hbox = new_hbox(vbox, TRUE);	wp_list = new_list(hbox, WP_COLUM_TITLES, wp_column_titles);	gtk_clist_column_titles_show(wp_list);	gtk_clist_set_column_justification(wp_list, 0, GTK_JUSTIFY_CENTER);	gtk_clist_set_column_justification(wp_list, 1, GTK_JUSTIFY_CENTER);	gtk_clist_set_column_justification(wp_list, 2, GTK_JUSTIFY_CENTER);	gtk_clist_set_column_justification(wp_list, 3, GTK_JUSTIFY_LEFT);	// setup selection handler	gtk_signal_connect(GTK_OBJECT(wp_list), "select_row", GTK_SIGNAL_FUNC(wp_selected), NULL);	gtk_signal_connect(GTK_OBJECT(wp_list), "unselect_row", GTK_SIGNAL_FUNC(wp_unselected), NULL);	vbox2 = new_vbox(hbox, FALSE);	hbox = new_hbox(vbox2, FALSE);	// remove button	wp_remove_button = new_button(hbox, TRUE, " Remove ");	gtk_signal_connect(GTK_OBJECT(wp_remove_button), "clicked", GTK_SIGNAL_FUNC(remove_watchpoint), NULL);	// remove all button	wp_removeall_button = new_button(hbox, TRUE, " Remove All ");	gtk_signal_connect(GTK_OBJECT(wp_removeall_button), "clicked", GTK_SIGNAL_FUNC(removeall_watchpoints), NULL);	new_separator(vbox2, FALSE, HORIZONTAL);	hbox = new_hbox(vbox2, FALSE);	wp_type = new_button_group(hbox, TRUE, HORIZONTAL, 2, wp_titles); 	new_label(vbox2, FALSE, "Physical address", FALSE);	// address text field	wp_address_text = new_text_entry(vbox2, FALSE, 145);	gtk_signal_connect(GTK_OBJECT(wp_address_text), "activate", GTK_SIGNAL_FUNC(add_watchpoint), (gpointer)1);	// add button	wp_add_button = new_button(vbox2, FALSE, " Add ");	gtk_signal_connect(GTK_OBJECT(wp_add_button), "clicked", GTK_SIGNAL_FUNC(add_watchpoint), (gpointer)1);	// message label	new_label(vbox2, FALSE, "Bochs 2.0 does not support", FALSE);	new_label(vbox2, FALSE, "remove, it might be supported", TRUE);	new_label(vbox2, FALSE, "in newer versions.", TRUE);	new_label(vbox2, FALSE, "Remove All does work.", TRUE);	selected_wp = -1;	nr_watchpoints = 0;}void watchpointsUpdate( e_wp_mode mode ){	const char *r_type = "Read", *w_type = "Write";	char address[LEN_ADDRESS], value[LEN_NUMBER], *row[WP_COLUM_TITLES];	uint n;	if(bochs_offline) return;	if(mode == WP_UPDATE) read_watchpoints();	gtk_clist_freeze(wp_list);	gtk_clist_clear(wp_list);	selected_wp = -1;	gtk_widget_set_sensitive(wp_remove_button, FALSE);	if(nr_watchpoints) gtk_widget_set_sensitive(wp_removeall_button, TRUE);	else gtk_widget_set_sensitive(wp_removeall_button, FALSE);	row[0] = NULL;	// row[1] is set below	row[2] = address;	row[3] = value;	for(n = 0; n < MAX_WATCHPOINTS && watchpoints[n].enabled; n++){		switch(watchpoints[n].type){		case WP_READ:			row[1] = (char *)r_type;			snprintf(address, LEN_ADDRESS, "%.8X", watchpoints[n].offset);			break;		case WP_WRITE:			row[1] = (char *)w_type;			snprintf(address, LEN_ADDRESS, "%.8X", watchpoints[n].offset);			break;		}		switch(watchpoints[n].value_size){		case 2:			snprintf(value, LEN_NUMBER, "%.4X", watchpoints[n].value);			break;		case 4:			snprintf(value, LEN_NUMBER, "%.8X", watchpoints[n].value);			break;		}		gtk_clist_append(wp_list, row);	}	gtk_clist_thaw(wp_list);}void watchpointsReload( ){	char address[LEN_ADDRESS];	uint x, old_wp_type;	if(reload_watchpoints){		old_wp_type = wp_type->current;		for(x = 0; (x < MAX_WATCHPOINTS) && watchpoints[x].enabled; x++){			snprintf(address, LEN_ADDRESS, "0x%.8X", watchpoints[x].offset);			wp_type->current = watchpoints[x].type;			gtk_entry_set_text(GTK_ENTRY(wp_address_text), address);			add_watchpoint(wp_address_text, (gpointer)0);		}		wp_type->current = old_wp_type;	}	watchpointsUpdate(WP_UPDATE);}void watchpointsEnablePage( gboolean v ){	gtk_widget_set_sensitive(GTK_WIDGET(wp_list), v);	gtk_widget_set_sensitive(wp_add_button, v);	if(selected_wp != -1) gtk_widget_set_sensitive(wp_remove_button, v);	else gtk_widget_set_sensitive(wp_remove_button, FALSE);	if(nr_watchpoints) gtk_widget_set_sensitive(wp_removeall_button, v);	else gtk_widget_set_sensitive(wp_removeall_button, FALSE);	gtk_widget_set_sensitive(wp_address_text, v);}void watchpointsSelect( uint wp ){	gtk_clist_set_text(wp_list, wp, 0, "X");	gtk_clist_select_row(wp_list, wp, 0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人无遮挡在线视频| 国产一区二区在线看| 亚洲国产电影在线观看| 日韩欧美视频在线| 欧美日韩国产一级| 欧美日韩电影在线| 欧美久久婷婷综合色| 在线免费观看日韩欧美| 在线观看日韩高清av| 欧美综合天天夜夜久久| 在线日韩一区二区| 欧美久久一区二区| 久久综合九色综合97婷婷 | 亚洲三级在线免费观看| 国产欧美日韩亚州综合| 国产精品丝袜一区| 亚洲精品免费看| 亚洲主播在线观看| 蜜桃精品视频在线观看| 精品一区二区三区在线观看| 激情另类小说区图片区视频区| 国产精华液一区二区三区| 成人精品免费看| 欧洲精品在线观看| 精品少妇一区二区| 国产精品成人一区二区艾草| 亚洲视频免费在线观看| 天堂蜜桃91精品| 国产一区中文字幕| 日本二三区不卡| 精品不卡在线视频| 亚洲欧美另类在线| 久久国产精品99久久久久久老狼| 国产乱码字幕精品高清av| 一本一道综合狠狠老| 欧美一区二区女人| 国产精品久久久久毛片软件| 亚洲一区二区三区四区在线免费观看| 久久国内精品视频| 色999日韩国产欧美一区二区| 欧美肥妇bbw| 136国产福利精品导航| 日本最新不卡在线| 91免费在线播放| 欧美变态凌虐bdsm| 日韩精品一级中文字幕精品视频免费观看| 国产一区美女在线| 91精品一区二区三区久久久久久| 国产精品乱人伦| 久久99蜜桃精品| 欧美日韩高清一区二区三区| 国产日产欧美一区| 蜜臀久久99精品久久久久宅男| kk眼镜猥琐国模调教系列一区二区 | 亚洲日本护士毛茸茸| 麻豆精品蜜桃视频网站| 色噜噜狠狠一区二区三区果冻| 337p日本欧洲亚洲大胆精品| 亚洲国产成人av| 99精品久久99久久久久| 精品动漫一区二区三区在线观看| 亚洲一区二区在线免费观看视频| 成人精品一区二区三区中文字幕| 欧美大片顶级少妇| 日本亚洲视频在线| 欧美日韩视频不卡| 亚洲成人激情综合网| 在线观看免费成人| 亚洲精品欧美激情| 欧亚洲嫩模精品一区三区| 自拍偷拍亚洲综合| 9人人澡人人爽人人精品| 国产网站一区二区三区| 国产乱码精品1区2区3区| 精品日韩在线观看| 久久99精品国产| 精品国产乱子伦一区| 麻豆一区二区三| 日韩欧美在线1卡| 麻豆精品一二三| 久久综合网色—综合色88| 免费的成人av| 久久综合丝袜日本网| 国产麻豆精品theporn| 久久久久久久久久久久电影| 激情欧美日韩一区二区| 日本一区免费视频| av成人免费在线观看| 亚洲精选一二三| 欧美日韩成人在线一区| 日韩成人免费电影| 精品免费国产一区二区三区四区| 久久se这里有精品| 日本一区二区三区久久久久久久久不 | 丝袜国产日韩另类美女| 欧美精品日韩综合在线| 毛片基地黄久久久久久天堂| 精品国产乱码久久久久久蜜臀 | 中文字幕精品一区二区三区精品 | 亚洲日本免费电影| 欧美军同video69gay| 国模娜娜一区二区三区| 中文字幕欧美日本乱码一线二线| 国产成人亚洲综合a∨婷婷图片| 国产精品黄色在线观看| 国产盗摄视频一区二区三区| 国产欧美一区二区三区在线老狼| 91在线播放网址| 免费av成人在线| 国产精品免费看片| 欧美精品一二三| 国产大陆精品国产| 日韩va亚洲va欧美va久久| 久久久不卡网国产精品二区 | 麻豆91在线观看| 国产精品国产精品国产专区不蜜| 欧美主播一区二区三区| 精品亚洲成a人在线观看| 亚洲视频一区二区免费在线观看| 欧美久久免费观看| 99久久国产免费看| 国产在线精品一区二区不卡了| 1000精品久久久久久久久| 91精品国产综合久久香蕉的特点| 国产91在线观看| 日本不卡不码高清免费观看| 国产精品另类一区| 欧美成人video| 欧美日韩国产a| 欧美综合天天夜夜久久| 丰满白嫩尤物一区二区| 秋霞午夜鲁丝一区二区老狼| 亚洲图片另类小说| 国产精品天干天干在观线| 日韩免费一区二区三区在线播放| 色综合天天综合| 成人免费毛片片v| 国产高清不卡一区二区| 七七婷婷婷婷精品国产| 一区二区三区av电影| 亚洲欧洲在线观看av| 国产视频在线观看一区二区三区 | 青椒成人免费视频| 亚洲永久免费视频| 亚洲欧洲精品一区二区三区 | av在线播放不卡| 国产成人综合亚洲91猫咪| 久久精品国产精品亚洲精品| 亚洲高清视频的网址| 亚洲综合色视频| 夜夜精品浪潮av一区二区三区| 亚洲欧美日韩久久精品| **欧美大码日韩| 亚洲欧美一区二区三区极速播放 | 91麻豆精品国产无毒不卡在线观看| 色综合婷婷久久| 日本高清不卡在线观看| 色一区在线观看| 欧美午夜视频网站| 欧美日本国产一区| 4438x成人网最大色成网站| 欧美色涩在线第一页| 欧美男生操女生| 精品奇米国产一区二区三区| 精品日产卡一卡二卡麻豆| 久久精品在线观看| 亚洲欧洲国产专区| 夜夜操天天操亚洲| 精品国产91亚洲一区二区三区婷婷| 欧美精品第1页| 久久伊人中文字幕| 国产精品久久午夜夜伦鲁鲁| 亚洲少妇最新在线视频| 亚洲伊人色欲综合网| 日韩av一区二区在线影视| 精品一区二区三区免费视频| 国产成人在线看| 色8久久精品久久久久久蜜| 884aa四虎影成人精品一区| 欧美刺激午夜性久久久久久久 | 国产99久久久精品| 国产主播一区二区三区| 成人夜色视频网站在线观看| 日本高清不卡在线观看| 日韩一区二区影院| 国产精品人人做人人爽人人添| 亚洲欧美偷拍另类a∨色屁股| 亚洲国产裸拍裸体视频在线观看乱了| 美女视频免费一区| 99久久免费精品高清特色大片| 欧美日韩在线播放三区四区| 欧美r级在线观看| 尤物视频一区二区| 国产一区二区免费看| 97久久精品人人做人人爽50路| 欧美日韩免费观看一区二区三区| 久久亚洲一级片| 亚洲综合视频在线观看| 国产乱码一区二区三区| 欧美视频你懂的|