Commit:    8e9805bb792c193377d2525667e18035ab5aad18
Author:    Xinchen Hui <larue...@php.net>         Tue, 2 Oct 2012 00:02:08 +0800
Parents:   139ac42bec942639db2f52ae16700e491114c898
Branches:  PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=8e9805bb792c193377d2525667e18035ab5aad18

Log:
Now we can set the tsrm_ls manually

get(ZTS build):
(gdb) zbacktrace
You can't do that without a process to debug.
(gdb) set_ts 0x4112500
(gdb) zbacktrace
[0x2b232e83a1d8] call_user_func(array(2)[0x2b232e879528],
array(1)[0x2b232e878fa0]) /tmp/1.php:4
[0x7fffcb2efd80] A->__call("xxx", array(1)[0x2b232e878fa0])

Changed paths:
  M  .gdbinit


Diff:
diff --git a/.gdbinit b/.gdbinit
index 87c9425..e7a565d 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -1,6 +1,19 @@
+define set_ts
+       set $tsrm_ls = $arg0
+end
+
+document set_ts
+       set the ts resource, it is impossible for gdb to
+       call ts_resource_ex while no process is running,
+       but we could get the resource from the argument 
+       of frame info.
+end
+
 define ____executor_globals
        if basic_functions_module.zts
-               set $tsrm_ls = ts_resource_ex(0, 0)
+               if !$tsrm_ls
+                       set $tsrm_ls = ts_resource_ex(0, 0)
+               end
                set $eg = ((zend_executor_globals*) (*((void ***) 
$tsrm_ls))[executor_globals_id-1])
                set $cg = ((zend_compiler_globals*) (*((void ***) 
$tsrm_ls))[compiler_globals_id-1])
        else
@@ -47,7 +60,7 @@ define dump_bt
                                        if $fst.function.common.scope
                                                printf "%s->", 
$fst.function.common.scope->name
                                        else
-                                               if !$eg && 
!basic_functions_module.zts
+                                               if !$eg
                                                        ____executor_globals
                                                end
 
@@ -73,7 +86,7 @@ define dump_bt
                                                end
 
                                                if !$known_class
-                                                       printf "Unknown->"
+                                                       printf "(Unknown)->"
                                                end
                                        end
                                else


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to