diff: fix stack tracing bug again

Fergus Henderson fjh at cs.mu.OZ.AU
Sun Feb 28 13:00:28 AEDT 1999


Estimated hours taken: 0.5

Re-fix a bug that was causing mdb's detailed stack traces to come out
incorrectly on some occaisions.  Erwan's recent changes accidentally
removed my previous fix of this bug.  Also fix another related bug
that I didn't notice last time.

trace/mercury_trace_external.c:
trace/mercury_trace_tables.c:
        Fix a bug: `maybe_from_full' should have type `Integer', not `Word'.

runtime/mercury_trace_base.c:
        Fix a bug: `maybe_from_full' should have type `Integer', not `bool'.

Index: runtime/mercury_trace_base.c
===================================================================
RCS file: /home/mercury1/repository/mercury/runtime/mercury_trace_base.c,v
retrieving revision 1.11
diff -u -r1.11 mercury_trace_base.c
--- mercury_trace_base.c	1999/02/20 06:08:08	1.11
+++ mercury_trace_base.c	1999/02/28 01:50:18
@@ -89,7 +89,7 @@
 ** control in the debugger when main/2 is called.
 */
 
-Bool		MR_trace_from_full = 1;
+Bool		MR_trace_from_full = TRUE;
 
 #ifdef	MR_TRACE_HISTOGRAM
 
@@ -106,7 +106,7 @@
 MR_trace(const MR_Stack_Layout_Label *layout, MR_Trace_Port port,
 	const char * path, int max_mr_num)
 {
-	bool		maybe_from_full;
+	Integer		maybe_from_full;
 	Unsigned	seqno;
 	Unsigned	depth;
 
Index: trace/mercury_trace_external.c
===================================================================
RCS file: /home/mercury1/repository/mercury/trace/mercury_trace_external.c,v
retrieving revision 1.9
diff -u -r1.9 mercury_trace_external.c
--- mercury_trace_external.c	1999/02/19 16:17:49	1.9
+++ mercury_trace_external.c	1999/02/28 01:51:00
@@ -919,7 +919,8 @@
 	if (base_sp != NULL && base_curfr != NULL) {
 		bool print_details = FALSE;
 		if (MR_ENTRY_LAYOUT_HAS_EXEC_TRACE(entry)) {
-			Word maybe_from_full = entry->MR_sle_maybe_from_full;
+			Integer maybe_from_full =
+				entry->MR_sle_maybe_from_full;
 			if (maybe_from_full > 0) {
 				/*
 				** for procedures compiled with shallow
Index: trace/mercury_trace_tables.c
===================================================================
RCS file: /home/mercury1/repository/mercury/trace/mercury_trace_tables.c,v
retrieving revision 1.5
diff -u -r1.5 mercury_trace_tables.c
--- mercury_trace_tables.c	1999/02/18 23:33:01	1.5
+++ mercury_trace_tables.c	1999/02/28 01:51:07
@@ -408,7 +408,8 @@
 	if (base_sp != NULL && base_curfr != NULL) {
 		bool print_details = FALSE;
 		if (MR_ENTRY_LAYOUT_HAS_EXEC_TRACE(entry)) {
-			Word maybe_from_full = entry->MR_sle_maybe_from_full;
+			Integer maybe_from_full =
+				entry->MR_sle_maybe_from_full;
 			if (maybe_from_full > 0) {
 				/*
 				** for procedures compiled with shallow

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "Binaries may die
WWW: <http://www.cs.mu.oz.au/~fjh>  |   but source code lives forever"
PGP: finger fjh at 128.250.37.3        |     -- leaked Microsoft memo.



More information about the developers mailing list