This repository has been archived by the owner on Jan 14, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathstackdriver_debugger_snapshot.h
65 lines (53 loc) · 2.08 KB
/
stackdriver_debugger_snapshot.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Copyright 2017 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef PHP_STACKDRIVER_DEBUGGER_SNAPSHOT_H
#define PHP_STACKDRIVER_DEBUGGER_SNAPSHOT_H 1
#include "php.h"
typedef struct stackdriver_debugger_variable_t {
zend_string *name;
zval value;
int indirect;
} stackdriver_debugger_variable_t;
typedef struct stackdriver_debugger_stackframe_t {
zend_string *function;
zend_string *filename;
zend_long lineno;
/* list of stackdriver_debugger_variable_t */
HashTable *locals;
} stackdriver_debugger_stackframe_t;
/* Snapshot struct */
typedef struct stackdriver_debugger_snapshot_t {
zend_string *id;
zend_string *filename;
zend_long lineno;
zend_string *condition;
zend_bool fulfilled;
zend_long max_stack_eval_depth;
zval callback;
/* index => zval* (strings) */
HashTable *expressions;
/* zend_string* (expression) => zval* (result) */
HashTable *evaluated_expressions;
/* list of stackdriver_debugger_stackframe_t */
HashTable *stackframes;
} stackdriver_debugger_snapshot_t;
void evaluate_snapshot(zend_execute_data *execute_data, stackdriver_debugger_snapshot_t *snapshot);
void list_snapshots(zval *return_value);
int register_snapshot(zend_string *snapshot_id, zend_string *filename, zend_long lineno, zend_string *condition, HashTable *expressions, zval *callback, zend_long max_stack_eval_depth);
/* request lifecycle callbacks */
int stackdriver_debugger_snapshot_rinit(TSRMLS_D);
int stackdriver_debugger_snapshot_rshutdown(TSRMLS_D);
#endif /* PHP_STACKDRIVER_DEBUGGER_SNAPSHOT_H */