this repo has no description
1/* Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com) */
2#pragma once
3
4#include <iosfwd>
5
6#include "handles.h"
7#include "objects.h"
8
9typedef struct _object PyObject;
10
11namespace py {
12
13std::ostream& dumpExtendedCode(std::ostream& os, RawCode value,
14 const char* indent);
15std::ostream& dumpExtendedFunction(std::ostream& os, RawFunction value);
16std::ostream& dumpExtendedInstance(std::ostream& os, RawInstance value);
17std::ostream& dumpExtendedLayout(std::ostream& os, RawLayout value,
18 const char* indent);
19std::ostream& dumpExtendedType(std::ostream& os, RawType value);
20std::ostream& dumpExtended(std::ostream& os, RawObject value);
21
22std::ostream& operator<<(std::ostream& os, CastError value);
23
24std::ostream& operator<<(std::ostream& os, RawBool value);
25std::ostream& operator<<(std::ostream& os, RawBoundMethod value);
26std::ostream& operator<<(std::ostream& os, RawBytearray value);
27std::ostream& operator<<(std::ostream& os, RawBytes value);
28std::ostream& operator<<(std::ostream& os, RawCode value);
29std::ostream& operator<<(std::ostream& os, RawDict value);
30std::ostream& operator<<(std::ostream& os, RawError value);
31std::ostream& operator<<(std::ostream& os, RawFloat value);
32std::ostream& operator<<(std::ostream& os, RawFunction value);
33std::ostream& operator<<(std::ostream& os, RawInt value);
34std::ostream& operator<<(std::ostream& os, RawLargeInt value);
35std::ostream& operator<<(std::ostream& os, RawLargeStr value);
36std::ostream& operator<<(std::ostream& os, RawLayout value);
37std::ostream& operator<<(std::ostream& os, RawList value);
38std::ostream& operator<<(std::ostream& os, RawModule value);
39std::ostream& operator<<(std::ostream& os, RawMutableTuple value);
40std::ostream& operator<<(std::ostream& os, RawNoneType value);
41std::ostream& operator<<(std::ostream& os, RawObject value);
42std::ostream& operator<<(std::ostream& os, RawSmallInt value);
43std::ostream& operator<<(std::ostream& os, RawSmallStr value);
44std::ostream& operator<<(std::ostream& os, RawStr value);
45std::ostream& operator<<(std::ostream& os, RawTuple value);
46std::ostream& operator<<(std::ostream& os, RawType value);
47std::ostream& operator<<(std::ostream& os, RawValueCell value);
48std::ostream& operator<<(std::ostream& os, RawWeakLink value);
49template <typename T>
50std::ostream& operator<<(std::ostream& os, const Handle<T>& value) {
51 return os << *value;
52}
53
54std::ostream& operator<<(std::ostream& os, Frame* frame);
55std::ostream& operator<<(std::ostream& os, Thread* thread);
56std::ostream& operator<<(std::ostream& os, LayoutId layout_id);
57
58void dump(RawObject object);
59void dump(const Object& object);
60void dump(Frame* frame);
61void dump(LayoutId layout_id);
62void dumpPendingException(Thread* thread);
63void dumpSingleFrame(Frame* frame);
64void dumpTraceback();
65void dump(PyObject* obj);
66
67void initializeDebugging();
68
69} // namespace py