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
Tobias Decking
GHC
Commits
813f822e
Commit
813f822e
authored
Feb 05, 1999
by
simonm
Browse files
[project @ 1999-02-05 14:44:43 by simonm]
Make it work.
parent
33d7924d
Changes
1
Hide whitespace changes
Inline
Side-by-side
ghc/rts/Printer.c
View file @
813f822e
/* -*- mode: hugs-c; -*- */
/* -----------------------------------------------------------------------------
* $Id: Printer.c,v 1.
4
1999/0
1/18 15:21:38
simonm Exp $
* $Id: Printer.c,v 1.
5
1999/0
2/05 14:44:43
simonm Exp $
*
* Copyright (c) 1994-1998.
*
...
...
@@ -64,7 +64,7 @@ static void printStdObject( StgClosure *obj, char* tag )
StgWord
i
,
j
;
const
StgInfoTable
*
info
=
get_itbl
(
obj
);
fprintf
(
stderr
,
"%s("
,
tag
);
printPtr
((
StgPtr
)
info
);
printPtr
((
StgPtr
)
obj
->
header
.
info
);
for
(
i
=
0
;
i
<
info
->
layout
.
payload
.
ptrs
;
++
i
)
{
fprintf
(
stderr
,
", "
);
printPtr
(
payloadPtr
(
obj
,
i
));
...
...
@@ -86,6 +86,7 @@ void printClosure( StgClosure *obj )
disassemble
(
stgCast
(
StgBCO
*
,
obj
),
"
\t
"
);
break
;
#endif
case
AP_UPD
:
{
StgAP_UPD
*
ap
=
stgCast
(
StgAP_UPD
*
,
obj
);
...
...
@@ -98,11 +99,12 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
PAP
:
{
StgPAP
*
pap
=
stgCast
(
StgPAP
*
,
obj
);
StgWord
i
;
fprintf
(
stderr
,
"AP
_NUPD
("
);
printPtr
((
StgPtr
)
pap
->
fun
);
fprintf
(
stderr
,
"
P
AP("
);
printPtr
((
StgPtr
)
pap
->
fun
);
for
(
i
=
0
;
i
<
pap
->
n_args
;
++
i
)
{
fprintf
(
stderr
,
", "
);
printPtr
(
payloadPtr
(
pap
,
i
));
...
...
@@ -110,11 +112,25 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
IND
:
fprintf
(
stderr
,
"IND("
);
printPtr
((
StgPtr
)
stgCast
(
StgInd
*
,
obj
)
->
indirectee
);
fprintf
(
stderr
,
")
\n
"
);
break
;
case
IND_STATIC
:
fprintf
(
stderr
,
"IND_STATIC("
);
printPtr
((
StgPtr
)
stgCast
(
StgInd
*
,
obj
)
->
indirectee
);
fprintf
(
stderr
,
")
\n
"
);
break
;
case
IND_OLDGEN
:
fprintf
(
stderr
,
"IND_OLDGEN("
);
printPtr
((
StgPtr
)
stgCast
(
StgInd
*
,
obj
)
->
indirectee
);
fprintf
(
stderr
,
")
\n
"
);
break
;
case
CAF_UNENTERED
:
{
StgCAF
*
caf
=
stgCast
(
StgCAF
*
,
obj
);
...
...
@@ -127,6 +143,7 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
CAF_ENTERED
:
{
StgCAF
*
caf
=
stgCast
(
StgCAF
*
,
obj
);
...
...
@@ -139,20 +156,26 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
CAF_BLACKHOLE
:
fprintf
(
stderr
,
"CAF_BH("
);
printPtr
((
StgPtr
)
stgCast
(
StgBlockingQueue
*
,
obj
)
->
blocking_queue
);
fprintf
(
stderr
,
")
\n
"
);
break
;
case
BLACKHOLE
:
fprintf
(
stderr
,
"BH
\n
"
);
break
;
case
BLACKHOLE_BQ
:
fprintf
(
stderr
,
"BQ("
);
printPtr
((
StgPtr
)
stgCast
(
StgBlockingQueue
*
,
obj
)
->
blocking_queue
);
fprintf
(
stderr
,
")
\n
"
);
break
;
case
CONSTR
:
case
CONSTR_1_0
:
case
CONSTR_0_1
:
case
CONSTR_1_1
:
case
CONSTR_0_2
:
case
CONSTR_2_0
:
case
CONSTR_INTLIKE
:
case
CONSTR_CHARLIKE
:
case
CONSTR_STATIC
:
...
...
@@ -164,7 +187,7 @@ void printClosure( StgClosure *obj )
StgWord
i
,
j
;
const
StgInfoTable
*
info
=
get_itbl
(
obj
);
fprintf
(
stderr
,
"PACK("
);
printPtr
((
StgPtr
)
info
);
printPtr
((
StgPtr
)
obj
->
header
.
info
);
fprintf
(
stderr
,
"(tag=%d)"
,
info
->
srt_len
);
for
(
i
=
0
;
i
<
info
->
layout
.
payload
.
ptrs
;
++
i
)
{
fprintf
(
stderr
,
", "
);
...
...
@@ -176,11 +199,17 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
FUN
:
case
FUN_1_0
:
case
FUN_0_1
:
case
FUN_1_1
:
case
FUN_0_2
:
case
FUN_2_0
:
case
FUN_STATIC
:
printStdObject
(
obj
,
"FUN"
);
break
;
case
THUNK
:
case
THUNK_1_0
:
case
THUNK_0_1
:
case
THUNK_1_1
:
case
THUNK_0_2
:
case
THUNK_2_0
:
case
THUNK_STATIC
:
/* ToDo: will this work for THUNK_STATIC too? */
printStdObject
(
obj
,
"THUNK"
);
...
...
@@ -210,6 +239,7 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
CATCH_FRAME
:
{
StgCatchFrame
*
u
=
stgCast
(
StgCatchFrame
*
,
obj
);
...
...
@@ -222,6 +252,7 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
SEQ_FRAME
:
{
StgSeqFrame
*
u
=
stgCast
(
StgSeqFrame
*
,
obj
);
...
...
@@ -232,6 +263,7 @@ void printClosure( StgClosure *obj )
fprintf
(
stderr
,
")
\n
"
);
break
;
}
case
STOP_FRAME
:
{
StgStopFrame
*
u
=
stgCast
(
StgStopFrame
*
,
obj
);
...
...
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