Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 565 lines (512 sloc) 11.163 kb
cfbf35a Support for ZTS
Marcus Boerger authored
1 define ____executor_globals
6dcb27d - MFH
Marcus Boerger authored
2 if basic_functions_module.zts
3 set $tsrm_ls = ts_resource_ex(0, 0)
7ace6dd @laruence Fix wrong type in the marco of fetching thread globals
laruence authored
4 set $eg = ((zend_executor_globals*) (*((void ***) $tsrm_ls))[executor_globals_id-1])
5 set $cg = ((zend_compiler_globals*) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
cfbf35a Support for ZTS
Marcus Boerger authored
6 else
7 set $eg = executor_globals
edc7e30 - MFH Add compiler globals as
Marcus Boerger authored
8 set $cg = compiler_globals
cfbf35a Support for ZTS
Marcus Boerger authored
9 end
10 end
11
12 document ____executor_globals
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
13 portable way of accessing executor_globals, set $eg
edc7e30 - MFH Add compiler globals as
Marcus Boerger authored
14 this also sets compiler_globals to $cg
6dcb27d - MFH
Marcus Boerger authored
15 ZTS detection is automatically based on ext/standard module struct
cfbf35a Support for ZTS
Marcus Boerger authored
16 end
17
e4e7e2b - Added a function to print all CVs from the local scope.
Derick Rethans authored
18 define print_cvs
19 ____executor_globals
20 set $p = $eg.current_execute_data.CVs
21 set $c = $eg.current_execute_data.op_array.last_var
22 set $v = $eg.current_execute_data.op_array.vars
23 set $i = 0
24
25 printf "Compiled variables count: %d\n", $c
26 while $i < $c
27 printf "%d = %s\n", $i, $v[$i].name
28 if $p[$i] != 0
29 printzv *$p[$i]
30 else
31 printf "*uninitialized*\n"
32 end
33 set $i = $i + 1
34 end
35 end
36
c1706b5 add really nice dump_bt function for debugging in gdb
Thies C. Arntzen authored
37 define dump_bt
cfbf35a Support for ZTS
Marcus Boerger authored
38 set $t = $arg0
39 while $t
c1706b5 add really nice dump_bt function for debugging in gdb
Thies C. Arntzen authored
40 printf "[0x%08x] ", $t
41 if $t->function_state.function->common.function_name
42 printf "%s() ", $t->function_state.function->common.function_name
43 else
44 printf "??? "
45 end
46 if $t->op_array != 0
47 printf "%s:%d ", $t->op_array->filename, $t->opline->lineno
48 end
49 set $t = $t->prev_execute_data
50 printf "\n"
cfbf35a Support for ZTS
Marcus Boerger authored
51 end
c1706b5 add really nice dump_bt function for debugging in gdb
Thies C. Arntzen authored
52 end
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
53
c1706b5 add really nice dump_bt function for debugging in gdb
Thies C. Arntzen authored
54 document dump_bt
55 dumps the current execution stack. usage: dump_bt executor_globals.current_execute_data
56 end
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
57
58 define printzv
7177ada some improvements to the debugging macros
Sterling Hughes authored
59 set $ind = 1
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
60 ____printzv $arg0 0
61 end
62
63 document printzv
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
64 prints zval contents
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
65 end
66
7177ada some improvements to the debugging macros
Sterling Hughes authored
67 define ____printzv_contents
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
68 set $zvalue = $arg0
6dcb27d - MFH
Marcus Boerger authored
69 set $type = $zvalue->type
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
70
ea74505 Fix macros after GC patch.
Andrei Zmievski authored
71 printf "(refcount=%d", $zvalue->refcount__gc
72 if $zvalue->is_ref__gc
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
73 printf ",is_ref"
74 end
75 printf ") "
6dcb27d - MFH
Marcus Boerger authored
76 if $type == 0
77 printf "NULL"
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
78 end
6dcb27d - MFH
Marcus Boerger authored
79 if $type == 1
80 printf "long: %ld", $zvalue->value.lval
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
81 end
6dcb27d - MFH
Marcus Boerger authored
82 if $type == 2
83 printf "double: %lf", $zvalue->value.dval
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
84 end
6dcb27d - MFH
Marcus Boerger authored
85 if $type == 3
86 printf "bool: "
87 if $zvalue->value.lval
88 printf "true"
89 else
90 printf "false"
91 end
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
92 end
6dcb27d - MFH
Marcus Boerger authored
93 if $type == 4
94 printf "array(%d): ", $zvalue->value.ht->nNumOfElements
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
95 if ! $arg1
96 printf "{\n"
97 set $ind = $ind + 1
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
98 ____print_ht $zvalue->value.ht 1
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
99 set $ind = $ind - 1
100 set $i = $ind
101 while $i > 0
102 printf " "
103 set $i = $i - 1
104 end
105 printf "}"
106 end
6dcb27d - MFH
Marcus Boerger authored
107 set $type = 0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
108 end
6dcb27d - MFH
Marcus Boerger authored
109 if $type == 5
110 printf "object"
111 ____executor_globals
112 set $handle = $zvalue->value.obj.handle
113 set $handlers = $zvalue->value.obj.handlers
114 if basic_functions_module.zts
115 set $zobj = zend_objects_get_address($zvalue, $tsrm_ls)
116 else
117 set $zobj = zend_objects_get_address($zvalue)
118 end
119 if $handlers->get_class_entry == &zend_std_object_get_class
120 set $cname = $zobj->ce.name
121 else
122 set $cname = "Unknown"
123 end
124 printf "(%s) #%d", $cname, $handle
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
125 if ! $arg1
6dcb27d - MFH
Marcus Boerger authored
126 if $handlers->get_properties == &zend_std_get_properties
127 set $ht = $zobj->properties
128 if $ht
129 printf "(%d): ", $ht->nNumOfElements
130 printf "{\n"
131 set $ind = $ind + 1
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
132 ____print_ht $ht 1
6dcb27d - MFH
Marcus Boerger authored
133 set $ind = $ind - 1
134 set $i = $ind
135 while $i > 0
136 printf " "
137 set $i = $i - 1
138 end
139 printf "}"
140 else
141 echo "no properties found"
142 end
cfbf35a Support for ZTS
Marcus Boerger authored
143 end
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
144 end
6dcb27d - MFH
Marcus Boerger authored
145 set $type = 0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
146 end
6dcb27d - MFH
Marcus Boerger authored
147 if $type == 6
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
148 printf "string(%d): ", $zvalue->value.str.len
149 ____print_str $zvalue->value.str.val $zvalue->value.str.len
6dcb27d - MFH
Marcus Boerger authored
150 end
151 if $type == 7
152 printf "resource: #%d", $zvalue->value.lval
153 end
154 if $type == 8
155 printf "constant"
156 end
157 if $type == 9
158 printf "const_array"
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
159 end
6dcb27d - MFH
Marcus Boerger authored
160 if $type > 9
161 printf "unknown type %d", $type
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
162 end
163 printf "\n"
164 end
165
7177ada some improvements to the debugging macros
Sterling Hughes authored
166 define ____printzv
167 ____executor_globals
168 set $zvalue = $arg0
169
170 printf "[0x%08x] ", $zvalue
171
172 if $zvalue == $eg.uninitialized_zval_ptr
173 printf "*uninitialized* "
174 end
175
6dcb27d - MFH
Marcus Boerger authored
176 set $zcontents = (zval*) $zvalue
7177ada some improvements to the debugging macros
Sterling Hughes authored
177 if $arg1
178 ____printzv_contents $zcontents $arg1
179 else
b2ea792 Fixed printzv macro
Moriyoshi Koizumi authored
180 ____printzv_contents $zcontents 0
7177ada some improvements to the debugging macros
Sterling Hughes authored
181 end
182 end
183
184 define ____print_const_table
185 set $ht = $arg0
186 set $p = $ht->pListHead
187
188 while $p != 0
6dcb27d - MFH
Marcus Boerger authored
189 set $const = (zend_constant *) $p->pData
7177ada some improvements to the debugging macros
Sterling Hughes authored
190
191 set $i = $ind
192 while $i > 0
193 printf " "
194 set $i = $i - 1
195 end
196
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
197 if $p->nKeyLength > 0
198 ____print_str $p->arKey $p->nKeyLength
199 printf " => "
7177ada some improvements to the debugging macros
Sterling Hughes authored
200 else
201 printf "%d => ", $p->h
202 end
203
6dcb27d - MFH
Marcus Boerger authored
204 ____printzv_contents &$const->value 0
7177ada some improvements to the debugging macros
Sterling Hughes authored
205 set $p = $p->pListNext
206 end
207 end
208
209 define print_const_table
210 set $ind = 1
211 printf "[0x%08x] {\n", $arg0
212 ____print_const_table $arg0
213 printf "}\n"
214 end
215
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
216 define ____print_ht
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
217 set $ht = (HashTable*)$arg0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
218 set $p = $ht->pListHead
219
220 while $p != 0
221 set $i = $ind
222 while $i > 0
223 printf " "
224 set $i = $i - 1
225 end
226
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
227 if $p->nKeyLength > 0
228 ____print_str $p->arKey $p->nKeyLength
229 printf " => "
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
230 else
231 printf "%d => ", $p->h
232 end
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
233
234 if $arg1 == 0
235 printf "%p\n", (void*)$p->pData
236 end
237 if $arg1 == 1
238 set $zval = *(zval **)$p->pData
239 ____printzv $zval 1
240 end
241 if $arg1 == 2
242 printf "%s\n", (char*)$p->pData
243 end
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
244
245 set $p = $p->pListNext
246 end
247 end
248
249 define print_ht
250 set $ind = 1
251 printf "[0x%08x] {\n", $arg0
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
252 ____print_ht $arg0 1
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
253 printf "}\n"
254 end
255
256 document print_ht
257 dumps elements of HashTable made of zval
258 end
259
a4e3f29 - MFH Add print_htptr, print_htstr
Marcus Boerger authored
260 define print_htptr
261 set $ind = 1
262 printf "[0x%08x] {\n", $arg0
263 ____print_ht $arg0 0
264 printf "}\n"
265 end
266
267 document print_htptr
268 dumps elements of HashTable made of pointers
269 end
270
271 define print_htstr
272 set $ind = 1
273 printf "[0x%08x] {\n", $arg0
274 ____print_ht $arg0 2
275 printf "}\n"
276 end
277
278 document print_htstr
279 dumps elements of HashTable made of strings
280 end
281
6dcb27d - MFH
Marcus Boerger authored
282 define ____print_ft
283 set $ht = $arg0
284 set $p = $ht->pListHead
285
286 while $p != 0
287 set $func = (zend_function*)$p->pData
288
289 set $i = $ind
290 while $i > 0
291 printf " "
292 set $i = $i - 1
293 end
294
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
295 if $p->nKeyLength > 0
296 ____print_str $p->arKey $p->nKeyLength
297 printf " => "
6dcb27d - MFH
Marcus Boerger authored
298 else
299 printf "%d => ", $p->h
300 end
301
302 printf "\"%s\"\n", $func->common.function_name
303 set $p = $p->pListNext
304 end
305 end
306
307 define print_ft
308 set $ind = 1
309 printf "[0x%08x] {\n", $arg0
310 ____print_ft $arg0
311 printf "}\n"
312 end
313
314 document print_ft
315 dumps a function table (HashTable)
316 end
317
55f0daf @m6w6 - treat interfaces and classes gracefully in print_inh
m6w6 authored
318 define ____print_inh_class
319 set $ce = $arg0
320 if $ce->ce_flags & 0x10 || $ce->ce_flags & 0x20
321 printf "abstract "
322 else
323 if $ce->ce_flags & 0x40
324 printf "final "
325 end
326 end
327 printf "class %s", $ce->name
328 if $ce->parent != 0
329 printf " extends %s", $ce->parent->name
330 end
331 if $ce->num_interfaces != 0
332 printf " implements"
333 set $tmp = 0
334 while $tmp < $ce->num_interfaces
335 printf " %s", $ce->interfaces[$tmp]->name
336 set $tmp = $tmp + 1
337 if $tmp < $ce->num_interfaces
338 printf ","
339 end
340 end
341 end
342 set $ce = $ce->parent
343 end
344
345 define ____print_inh_iface
346 set $ce = $arg0
347 printf "interface %s", $ce->name
348 if $ce->num_interfaces != 0
349 set $ce = $ce->interfaces[0]
350 printf " extends %s", $ce->name
351 else
352 set $ce = 0
353 end
354 end
355
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
356 define print_inh
357 set $ce = $arg0
358 set $depth = 0
359 while $ce != 0
360 set $tmp = $depth
361 while $tmp != 0
362 printf " "
363 set $tmp = $tmp - 1
364 end
55f0daf @m6w6 - treat interfaces and classes gracefully in print_inh
m6w6 authored
365 set $depth = $depth + 1
366 if $ce->ce_flags & 0x80
367 ____print_inh_iface $ce
368 else
369 ____print_inh_class $ce
78d11cb @m6w6 - add print_inh (prints a very simple class tree, ie. extensible)
m6w6 authored
370 end
371 printf " {\n"
372 end
373 while $depth != 0
374 set $tmp = $depth
375 while $tmp != 1
376 printf " "
377 set $tmp = $tmp - 1
378 end
379 printf "}\n"
380 set $depth = $depth - 1
381 end
382 end
383
384 define print_pi
385 set $pi = $arg0
386 printf "[0x%08x] {\n", $pi
387 printf " h = %lu\n", $pi->h
388 printf " flags = %d (", $pi->flags
389 if $pi->flags & 0x100
390 printf "ZEND_ACC_PUBLIC"
391 else
392 if $pi->flags & 0x200
393 printf "ZEND_ACC_PROTECTED"
394 else
395 if $pi->flags & 0x400
396 printf "ZEND_ACC_PRIVATE"
397 else
398 if $pi->flags & 0x800
399 printf "ZEND_ACC_CHANGED"
400 end
401 end
402 end
403 end
404 printf ")\n"
405 printf " name = "
406 ____print_str $pi->name $pi->name_length
407 printf "\n}\n"
408 end
409
410 define ____print_str
411 set $tmp = 0
412 set $str = $arg0
413 printf "\""
414 while $tmp < $arg1
415 if $str[$tmp] > 32 && $str[$tmp] < 127
416 printf "%c", $str[$tmp]
417 else
418 printf "\\%o", $str[$tmp]
419 end
420 set $tmp = $tmp + 1
421 end
422 printf "\""
423 end
424
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
425 define printzn
cfbf35a Support for ZTS
Marcus Boerger authored
426 ____executor_globals
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
427 set $ind = 0
428 set $znode = $arg0
429 if $znode->op_type == 1
430 set $optype = "IS_CONST"
431 end
432 if $znode->op_type == 2
433 set $optype = "IS_TMP_VAR"
434 end
435 if $znode->op_type == 4
436 set $optype = "IS_VAR"
437 end
438 if $znode->op_type == 8
439 set $optype = "IS_UNUSED"
440 end
441
442 printf "[0x%08x] %s", $znode, $optype
443
444 if $znode->op_type == 1
445 printf ": "
3974225 Fixed printzn part.
Moriyoshi Koizumi authored
446 ____printzv &$znode->u.constant 0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
447 end
448 if $znode->op_type == 2
449 printf ": "
cfbf35a Support for ZTS
Marcus Boerger authored
450 set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
3974225 Fixed printzn part.
Moriyoshi Koizumi authored
451 ____printzv ((union _temp_variable *)$tvar)->tmp_var 0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
452 end
453 if $znode->op_type == 4
454 printf ": "
cfbf35a Support for ZTS
Marcus Boerger authored
455 set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
3974225 Fixed printzn part.
Moriyoshi Koizumi authored
456 ____printzv *$tvar->var.ptr_ptr 0
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
457 end
458 if $znode->op_type == 8
459 printf "\n"
460 end
461 end
462
463 document printzn
e184a55 Improved readability of zmemcheck output
Moriyoshi Koizumi authored
464 print type and content of znode.
465 usage: printzn &opline->op1
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
466 end
467
468 define printzops
469 printf "op1 => "
470 printzn &execute_data->opline.op1
471 printf "op2 => "
472 printzn &execute_data->opline.op2
473 printf "result => "
474 printzn &execute_data->opline.result
475 end
476
477 document printzops
478 dump operands of the current opline
479 end
480
097bfda - Add "zbacktrace" user-defined command.
Moriyoshi Koizumi authored
481 define zbacktrace
482 ____executor_globals
483 dump_bt $eg.current_execute_data
484 end
485
486 document zbacktrace
487 prints backtrace.
488 This command is almost a short cut for
489 > (gdb) ____executor_globals
490 > (gdb) dump_bt $eg.current_execute_data
491 end
492
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
493 define zmemcheck
494 set $p = alloc_globals.head
495 set $stat = "?"
33fb9a6 Improved zmemcheck macro so it displays the size of each memory block to...
Moriyoshi Koizumi authored
496 set $total_size = 0
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
497 if $arg0 != 0
498 set $not_found = 1
499 else
500 set $not_found = 0
501 end
33fb9a6 Improved zmemcheck macro so it displays the size of each memory block to...
Moriyoshi Koizumi authored
502 printf " block size status file:line\n"
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
503 printf "-------------------------------------------------------------------------------\n"
504 while $p
505 set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test)
506 if $arg0 == 0 || (void *)$aptr == (void *)$arg0
507 if $p->magic == 0x7312f8dc
508 set $stat = "OK"
509 end
510 if $p->magic == 0x99954317
511 set $stat = "FREED"
512 end
513 if $p->magic == 0xfb8277dc
514 set $stat = "CACHED"
515 end
e184a55 Improved readability of zmemcheck output
Moriyoshi Koizumi authored
516 set $filename = strrchr($p->filename, '/')
517 if !$filename
518 set $filename = $p->filename
519 else
520 set $filename = $filename + 1
521 end
33fb9a6 Improved zmemcheck macro so it displays the size of each memory block to...
Moriyoshi Koizumi authored
522 printf " 0x%08x ", $aptr
523 if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
524 printf "ZVAL?(%-2d) ", $p->size
525 else
526 printf "%-9d ", $p->size
527 end
528 set $total_size = $total_size + $p->size
529 printf "%-06s %s:%d", $stat, $filename, $p->lineno
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
530 if $p->orig_filename
e184a55 Improved readability of zmemcheck output
Moriyoshi Koizumi authored
531 set $orig_filename = strrchr($p->orig_filename, '/')
532 if !$orig_filename
533 set $orig_filename = $p->orig_filename
534 else
535 set $orig_filename = $orig_filename + 1
536 end
537 printf " <= %s:%d\n", $orig_filename, $p->orig_lineno
538 else
539 printf "\n"
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
540 end
541 if $arg0 != 0
542 set $p = 0
543 set $not_found = 0
544 else
545 set $p = $p->pNext
546 end
547 else
548 set $p = $p->pNext
549 end
550 end
551 if $not_found
552 printf "no such block that begins at 0x%08x.\n", $aptr
553 end
33fb9a6 Improved zmemcheck macro so it displays the size of each memory block to...
Moriyoshi Koizumi authored
554 if $arg0 == 0
555 printf "-------------------------------------------------------------------------------\n"
556 printf " total: %d bytes\n", $total_size
557 end
80bfd18 Added zmemcheck macro, which may help you examine the memory blocks bein...
Moriyoshi Koizumi authored
558 end
559
560 document zmemcheck
e184a55 Improved readability of zmemcheck output
Moriyoshi Koizumi authored
561 show status of a memory block.
562 usage: zmemcheck [ptr].
563 if ptr is 0, all blocks will be listed.
6e3faef Added various gdb macros to examine zval, znode, and HashTable
Moriyoshi Koizumi authored
564 end
Something went wrong with that request. Please try again.