rem: kprintf("usage: thread [id/name]\n");
add: kprintf("usage: thread [id/address/name]\n");
context: dump_thread_info(int argc, char **argv){	const char *name = NULL;	struct thread *t;	int32 id = -1;	struct hash_iterator i;	bool found = false;	if (argc > 2) {		kprintf("usage: thread [id/name]\n");		return 0;	}	if (argc == 1) {		name = NULL;		id = thread_get_current_thread()->id;	} else {		name = argv[1];		id = strtoul(argv[1], NULL, 0);	}	// walk through the thread list, trying to match name or id	hash_open(sThreadHash, &i);	while ((t = hash_next(sThreadHash, &i)) != NULL) {		if ((name != NULL && !strcmp(name, t->name)) || t->id == id) {			_dump_thread_info(t);			found = true;			break;		}	}	hash_close(sThreadHash, &i, false);	if (!found)		kprintf("thread \"%s\" (%ld) doesn't exist!\n", argv[1], id);	return 0;}