Index: /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libca_snmp/snmp_cadmin.c
===================================================================
--- /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libca_snmp/snmp_cadmin.c	(revision 39398)
+++ /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libca_snmp/snmp_cadmin.c	(working copy)
@@ -1362,6 +1362,49 @@
 	return 0;
 }
 
+#define LOG_FILE "/var/crash/snmpdlogs.txt"
+int
+snmp_server_debug_on()
+{
+	snmp_info_t *pInfo = snmp_server_attach();
+	char cmd[1024] = {0};
+
+	if (pInfo == NULL) {
+		return CA_ERR_SNMP_SHM_ATT;
+	}
+	if (snmp_server_lock(pInfo)) {
+		return (CA_ERR_SNMP_SHM_LOCK);
+	}
+	if (pInfo->snmp_daemon_on == CA_SNMP_ENABLE) {
+		pid_t snmpd_pid = get_SNMPD_pid();
+		if (snmpd_pid > 0) {
+			int i;
+			snprintf(cmd, sizeof(cmd), "netstat -tulnp | grep -e 161 -e 162 -e 16223 >> %s 2>&1", LOG_FILE);
+			system(cmd);
+			snprintf(cmd, sizeof(cmd), "lsof -i :161 -i :162 -i :16223 >> %s 2>&1", LOG_FILE);
+			system(cmd);
+			snprintf(cmd, sizeof(cmd), "top -b -n 1 >> %s 2>&1", LOG_FILE);
+			system(cmd);
+			for (i=0; i< 10; i++){
+				system("echo '*******PSTACK********' >> /var/crash/snmpdlogs.txt 2>&1");
+				snprintf(cmd, sizeof(cmd), "pstack %d >> %s 2>&1",(int)snmpd_pid, LOG_FILE);
+				system(cmd);
+
+			}
+		}
+	} else {
+		printf("please enable snmp to enable snmp debuging\n");
+	}
+	snmp_server_unlock();
+	return CA_SNMP_OK;
+}
+
+int
+snmp_server_debug_off()
+{
+	remove("/var/crash/snmpdlogs.txt");
+}
+
 int
 snmp_server_on(char * snmp_version)
 {
Index: /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libparser/commands.pm
===================================================================
--- /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libparser/commands.pm	(revision 39398)
+++ /branches/rel_apv_10_7_2_14_epassport/usr/click/lib/libparser/commands.pm	(working copy)
@@ -32579,6 +32579,35 @@
 		function_name => "snmp_server_off",
 		function_args => [],
 	},
+	{
+		obj_type => "MENU",
+		name => "debug",
+		parent_menu => "root_snmp",
+		uniq_name => "root_snmp_debug",
+		help_string => "Set debug logs for SNMP",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL|CMD_GLOBAL",
+		user_level => "CLI_LEVEL_CONFIG",
+	},
+	{
+		obj_type => "ITEM",
+		name => "on",
+		menu => "root_snmp_debug",
+		help_string => "Enable SNMP agent debugging logs",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL|CMD_GLOBAL",
+		user_level => "CLI_LEVEL_CONFIG",
+		function_name => "snmp_server_debug_on",
+		function_args => [],
+	},
+	{
+		obj_type => "ITEM",
+		name => "off",
+		menu => "root_snmp_debug",
+		help_string => "Disable SNMP agent debugging logs",
+		cmd_attribute => "CMD_ARRAYOS|CMD_SPROXY|CMD_NORMAL|CMD_GLOBAL",
+		user_level => "CLI_LEVEL_CONFIG",
+		function_name => "snmp_server_debug_off",
+		function_args => [],
+	},
 #bug 14397, qiuzj 20061018
 #snmp v3 support
 	{
