troubleshotting the backtrace code
This commit is contained in:
		| @ -2414,7 +2414,8 @@ static HAK_INLINE int do_throw (hak_t* hak, hak_oop_t val, hak_ooi_t ip) | |||||||
| 		/* output backtrace */ | 		/* output backtrace */ | ||||||
| 		HAK_LOG0(hak, HAK_LOG_IC | HAK_LOG_INFO, "[BACKTRACE]\n"); | 		HAK_LOG0(hak, HAK_LOG_IC | HAK_LOG_INFO, "[BACKTRACE]\n"); | ||||||
| 		c = hak->active_context; | 		c = hak->active_context; | ||||||
| 		while ((hak_oop_t)c != hak->_nil) { | 		while ((hak_oop_t)c != hak->_nil) | ||||||
|  | 		{ | ||||||
| 			f = c->base; | 			f = c->base; | ||||||
| 			if (f->dbgi != hak->_nil) | 			if (f->dbgi != hak->_nil) | ||||||
| 			{ | 			{ | ||||||
| @ -2425,7 +2426,8 @@ static HAK_INLINE int do_throw (hak_t* hak, hak_oop_t val, hak_ooi_t ip) | |||||||
| 				hak_loc_t loc; | 				hak_loc_t loc; | ||||||
| 				hak_ooi_t cip; | 				hak_ooi_t cip; | ||||||
|  |  | ||||||
| 				cip = HAK_OOP_TO_SMOOI(c->ip); | 				/* use the given ip for the active context instead of the value from the ip field */ | ||||||
|  | 				cip = (c == hak->active_context)? ip: HAK_OOP_TO_SMOOI(c->ip); | ||||||
| 				dbgi = (hak_dbgi_t*)HAK_OBJ_GET_BYTE_SLOT(f->dbgi); | 				dbgi = (hak_dbgi_t*)HAK_OBJ_GET_BYTE_SLOT(f->dbgi); | ||||||
| 				HAK_MEMSET(&loc, 0, HAK_SIZEOF(loc)); | 				HAK_MEMSET(&loc, 0, HAK_SIZEOF(loc)); | ||||||
| 				loc.file = dbgi[cip].fname; | 				loc.file = dbgi[cip].fname; | ||||||
|  | |||||||
| @ -166,14 +166,15 @@ printf "%O\n" (k:basicAt 20) | |||||||
| } | } | ||||||
| } | } | ||||||
|  |  | ||||||
| try { | ##try { | ||||||
|  | 	printf ">>>>>>>>>>>>>>>\n" | ||||||
| 	(Q:k) | 	(Q:k) | ||||||
| } catch (e) { | ##} catch (e) { | ||||||
| 	printf "EXCEPTION: %O\n" e | 	printf "EXCEPTION: %O\n" e | ||||||
|  |  | ||||||
| 	try { | ##	try { | ||||||
| 		throw 10000 | 		throw 10000 | ||||||
| 	} catch (e) { | ##	} catch (e) { | ||||||
| 		printf "EXCEPTION-X: %O\n" e | ##		printf "EXCEPTION-X: %O\n" e | ||||||
| 	} | ##	} | ||||||
| } | ##} | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user