Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
7c192354
Commit
7c192354
authored
Jan 14, 2000
by
simonmar
Browse files
[project @ 2000-01-14 14:56:40 by simonmar]
Move closure type printing stuff to Printer.c, since it's generally useful.
parent
ccb8e01f
Changes
4
Hide whitespace changes
Inline
Side-by-side
ghc/rts/Printer.c
View file @
7c192354
/* -----------------------------------------------------------------------------
* $Id: Printer.c,v 1.
19
2000/01/1
3
14:
34:04 hwloidl
Exp $
* $Id: Printer.c,v 1.
20
2000/01/1
4
14:
56:40 simonmar
Exp $
*
*
Copyright (c)
1994-
1999
.
*
(c) The GHC Team,
1994-
2000
.
*
* Heap printer
*
...
...
@@ -475,6 +475,95 @@ void printTSO( StgTSO *tso )
/* printStackChunk( tso->sp, tso->stack+tso->stack_size); */
}
/* -----------------------------------------------------------------------------
Closure types
NOTE: must be kept in sync with the closure types in includes/ClosureTypes.h
-------------------------------------------------------------------------- */
static
char
*
closure_type_names
[]
=
{
"INVALID_OBJECT"
,
/* 0 */
"CONSTR"
,
/* 1 */
"CONSTR_1_0"
,
/* 2 */
"CONSTR_0_1"
,
/* 3 */
"CONSTR_2_0"
,
/* 4 */
"CONSTR_1_1"
,
/* 5 */
"CONSTR_0_2"
,
/* 6 */
"CONSTR_INTLIKE"
,
/* 7 */
"CONSTR_CHARLIKE"
,
/* 8 */
"CONSTR_STATIC"
,
/* 9 */
"CONSTR_NOCAF_STATIC"
,
/* 10 */
"FUN"
,
/* 11 */
"FUN_1_0"
,
/* 12 */
"FUN_0_1"
,
/* 13 */
"FUN_2_0"
,
/* 14 */
"FUN_1_1"
,
/* 15 */
"FUN_0_2"
,
/* 16 */
"FUN_STATIC"
,
/* 17 */
"THUNK"
,
/* 18 */
"THUNK_1_0"
,
/* 19 */
"THUNK_0_1"
,
/* 20 */
"THUNK_2_0"
,
/* 21 */
"THUNK_1_1"
,
/* 22 */
"THUNK_0_2"
,
/* 23 */
"THUNK_STATIC"
,
/* 24 */
"THUNK_SELECTOR"
,
/* 25 */
"BCO"
,
/* 26 */
"AP_UPD"
,
/* 27 */
"PAP"
,
/* 28 */
"IND"
,
/* 29 */
"IND_OLDGEN"
,
/* 30 */
"IND_PERM"
,
/* 31 */
"IND_OLDGEN_PERM"
,
/* 32 */
"IND_STATIC"
,
/* 33 */
"CAF_UNENTERED"
,
/* 34 */
"CAF_ENTERED"
,
/* 35 */
"CAF_BLACKHOLE"
,
/* 36 */
"RET_BCO"
,
/* 37 */
"RET_SMALL"
,
/* 38 */
"RET_VEC_SMALL"
,
/* 39 */
"RET_BIG"
,
/* 40 */
"RET_VEC_BIG"
,
/* 41 */
"RET_DYN"
,
/* 42 */
"UPDATE_FRAME"
,
/* 43 */
"CATCH_FRAME"
,
/* 44 */
"STOP_FRAME"
,
/* 45 */
"SEQ_FRAME"
,
/* 46 */
"BLACKHOLE"
,
/* 47 */
"BLACKHOLE_BQ"
,
/* 48 */
"SE_BLACKHOLE"
,
/* 49 */
"SE_CAF_BLACKHOLE"
,
/* 50 */
"MVAR"
,
/* 51 */
"ARR_WORDS"
,
/* 52 */
"MUT_ARR_PTRS"
,
/* 53 */
"MUT_ARR_PTRS_FROZEN"
,
/* 54 */
"MUT_VAR"
,
/* 55 */
"WEAK"
,
/* 56 */
"FOREIGN"
,
/* 57 */
"STABLE_NAME"
,
/* 58 */
"TSO"
,
/* 59 */
"BLOCKED_FETCH"
,
/* 60 */
"FETCH_ME"
,
/* 61 */
"EVACUATED"
,
/* 62 */
"N_CLOSURE_TYPES"
,
/* 63 */
"FETCH_ME_BQ"
,
/* 64 */
"RBH"
/* 65 */
};
char
*
info_type
(
StgClosure
*
closure
){
return
closure_type_names
[
get_itbl
(
closure
)
->
type
];
}
char
*
info_type_by_ip
(
StgInfoTable
*
ip
){
return
closure_type_names
[
ip
->
type
];
}
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
){
strcpy
(
res
,
closure_type_names
[
get_itbl
(
closure
)
->
type
]);
}
/* --------------------------------------------------------------------------
* Address printing code
...
...
@@ -698,7 +787,7 @@ static void printZcoded( const char *raw )
/* Causing linking trouble on Win32 plats, so I'm
disabling this for now.
*/
#if defined(HAVE_BFD_H) && !defined(_WIN32)
&& defined(USE_BSD)
#if defined(HAVE_BFD_H) && !defined(_WIN32)
#include <bfd.h>
...
...
@@ -797,7 +886,7 @@ extern void DEBUG_LoadSymbols( char *name )
#else
/* HAVE_BFD_H */
extern
void
DEBUG_LoadSymbols
(
char
*
name
)
extern
void
DEBUG_LoadSymbols
(
char
*
name
STG_UNUSED
)
{
/* nothing, yet */
}
...
...
ghc/rts/Printer.h
View file @
7c192354
/* -----------------------------------------------------------------------------
* $Id: Printer.h,v 1.
4 1999/06/29 13:04:40 panne
Exp $
* $Id: Printer.h,v 1.
5 2000/01/14 14:56:40 simonmar
Exp $
*
* (c) The GHC Team, 1998-
1999
* (c) The GHC Team, 1998-
2000
*
* Prototypes for functions in Printer.c
*
...
...
@@ -18,6 +18,9 @@ extern void printStack ( StgStackPtr sp, StgStackPtr spLim,
StgUpdateFrame
*
su
);
extern
void
printTSO
(
StgTSO
*
tso
);
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
);
char
*
info_type
(
StgClosure
*
closure
);
char
*
info_type_by_ip
(
StgInfoTable
*
ip
);
extern
void
DEBUG_LoadSymbols
(
char
*
name
);
...
...
ghc/rts/parallel/ParallelDebug.c
View file @
7c192354
...
...
@@ -32,6 +32,7 @@ Various debugging routines for GranSim and GUM
#include "GranSimRts.h"
#include "ParallelRts.h"
#include "StgMiscClosures.h"
#include "Printer.h"
# if defined(DEBUG)
# include "ParallelDebug.h"
# endif
...
...
@@ -45,77 +46,6 @@ rtsBool isFixed(globalAddr *ga);
//@node Constants and Variables, Closures, Prototypes, Debugging routines for GranSim and GUM
//@subsection Constants and Variables
/* Names as strings; needed by get_closure_info in ClosureMacros.h -- HWL */
static
char
*
closure_type_names
[]
=
{
"INVALID_OBJECT"
,
/* 0 */
"CONSTR"
,
/* 1 */
"CONSTR_1_0"
,
/* 2 */
"CONSTR_0_1"
,
/* 3 */
"CONSTR_2_0"
,
/* 4 */
"CONSTR_1_1"
,
/* 5 */
"CONSTR_0_2"
,
/* 6 */
"CONSTR_INTLIKE"
,
/* 7 */
"CONSTR_CHARLIKE"
,
/* 8 */
"CONSTR_STATIC"
,
/* 9 */
"CONSTR_NOCAF_STATIC"
,
/* 10 */
"FUN"
,
/* 11 */
"FUN_1_0"
,
/* 12 */
"FUN_0_1"
,
/* 13 */
"FUN_2_0"
,
/* 14 */
"FUN_1_1"
,
/* 15 */
"FUN_0_2"
,
/* 16 */
"FUN_STATIC"
,
/* 17 */
"THUNK"
,
/* 18 */
"THUNK_1_0"
,
/* 19 */
"THUNK_0_1"
,
/* 20 */
"THUNK_2_0"
,
/* 21 */
"THUNK_1_1"
,
/* 22 */
"THUNK_0_2"
,
/* 23 */
"THUNK_STATIC"
,
/* 24 */
"THUNK_SELECTOR"
,
/* 25 */
"BCO"
,
/* 26 */
"AP_UPD"
,
/* 27 */
"PAP"
,
/* 28 */
"IND"
,
/* 29 */
"IND_OLDGEN"
,
/* 30 */
"IND_PERM"
,
/* 31 */
"IND_OLDGEN_PERM"
,
/* 32 */
"IND_STATIC"
,
/* 33 */
"CAF_UNENTERED"
,
/* 34 */
"CAF_ENTERED"
,
/* 35 */
"CAF_BLACKHOLE"
,
/* 36 */
"RET_BCO"
,
/* 37 */
"RET_SMALL"
,
/* 38 */
"RET_VEC_SMALL"
,
/* 39 */
"RET_BIG"
,
/* 40 */
"RET_VEC_BIG"
,
/* 41 */
"RET_DYN"
,
/* 42 */
"UPDATE_FRAME"
,
/* 43 */
"CATCH_FRAME"
,
/* 44 */
"STOP_FRAME"
,
/* 45 */
"SEQ_FRAME"
,
/* 46 */
"BLACKHOLE"
,
/* 47 */
"BLACKHOLE_BQ"
,
/* 48 */
"SE_BLACKHOLE"
,
/* 49 */
"SE_CAF_BLACKHOLE"
,
/* 50 */
"MVAR"
,
/* 51 */
"ARR_WORDS"
,
/* 52 */
"MUT_ARR_PTRS"
,
/* 53 */
"MUT_ARR_PTRS_FROZEN"
,
/* 54 */
"MUT_VAR"
,
/* 55 */
"WEAK"
,
/* 56 */
"FOREIGN"
,
/* 57 */
"STABLE_NAME"
,
/* 58 */
"TSO"
,
/* 59 */
"BLOCKED_FETCH"
,
/* 60 */
"FETCH_ME"
,
/* 61 */
"EVACUATED"
,
/* 62 */
"N_CLOSURE_TYPES"
,
/* 63 */
"FETCH_ME_BQ"
,
/* 64 */
"RBH"
/* 65 */
};
#if defined(GRAN) && defined(GRAN_CHECK)
//@node Closures, Threads, Constants and Variables, Debugging routines for GranSim and GUM
//@subsection Closures
...
...
@@ -810,21 +740,6 @@ char *str;
return
(
str
);
}
char
*
info_type
(
StgClosure
*
closure
){
return
closure_type_names
[
get_itbl
(
closure
)
->
type
];
}
char
*
info_type_by_ip
(
StgInfoTable
*
ip
){
return
closure_type_names
[
ip
->
type
];
}
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
){
strcpy
(
res
,
closure_type_names
[
get_itbl
(
closure
)
->
type
]);
}
/*
PrintPacket is in Pack.c because it makes use of closure queues
*/
...
...
@@ -1387,26 +1302,5 @@ PrintGraph(StgClosure *p, int indent_level)
#endif
/* GRAN || PAR */
#if !defined(GRAN) && !defined(PAR)
// just dummy defs in this setup
#include "Rts.h"
#include "ParallelDebug.h"
char
*
info_type
(
StgClosure
*
closure
){
return
"petaQ"
;
}
char
*
info_type_by_ip
(
StgInfoTable
*
ip
){
return
"petaQ"
;
}
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
){
strcpy
(
res
,
"petaQ"
);
}
#endif
/* GRAN || PAR */
//@node End of File, , Printing Packet Contents, Debugging routines for GranSim and GUM
//@subsection End of File
ghc/rts/parallel/ParallelDebug.h
View file @
7c192354
...
...
@@ -37,21 +37,10 @@ void GIT(StgPtr node);
#if defined(GRAN) || defined(PAR)
char
*
display_info_type
(
StgClosure
*
closure
,
char
*
str
);
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
);
char
*
info_type
(
StgClosure
*
closure
);
char
*
info_type_by_ip
(
StgInfoTable
*
ip
);
void
PrintPacket
(
rtsPackBuffer
*
buffer
);
void
PrintGraph
(
StgClosure
*
p
,
int
indent_level
);
#endif
/* GRAN || PAR */
#if !defined(GRAN) && !defined(PAR)
void
info_hdr_type
(
StgClosure
*
closure
,
char
*
res
);
char
*
info_type
(
StgClosure
*
closure
);
char
*
info_type_by_ip
(
StgInfoTable
*
ip
);
#endif
#endif
/* PARALLEL_DEBUG_H */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment