Revision: 1553 Author: teawater Date: Tue May 7 23:49:23 2013 Log: Update doc http://code.google.com/p/kgtp/source/detail?r=1553 Modified: /wiki/HOWTO.wiki /wiki/HOWTOCN.wiki ======================================= --- /wiki/HOWTO.wiki Tue May 7 23:39:05 2013 +++ /wiki/HOWTO.wiki Tue May 7 23:49:23 2013 @@ -512,7 +512,7 @@Evaluate the given expressions when the tracepoint is hit. This command accepts a comma-separated list of expressions. The results are discarded, so this is mainly useful for assigning values to trace state variables (see [HOWTO#Simple_trace_state_variables]) without adding those values to the trace buffer, as would be the case if the collect action were used.
==== while-stepping n ====-Please goto [HOWTO#If_the_debug_info_of_the_function_pointer_is_optimized_out] see howto use it. +Please goto [#Use_while-stepping_let_Linux_kernel_do_single_step] see howto use it.
=== Start and stop the tracepoint === Tracepoint will exec actions only when it is starting use this GDB command: @@ -1298,27 +1298,33 @@ === Read the traceframe of while-stepping ===The data of different step that is recorded by while-stepping actions will be saved in different traceframe that you can use tfind ([#Use_tfind_select_the_entry_inside_the_trace_frame_info]) to select them.<br> -Or you can switch KGTP to replay mode to select all the traceframe of a while-stepping tracepoint with GDB execution and reverse-execution commands. For example: +Or you can switch KGTP to replay mode to select all the traceframe of a while-stepping tracepoint with GDB execution and reverse-execution commands. For example:<br>
+Use tfind select one the traceframe of a while-stepping tracepoint. {{{ -#Use tfind select one the traceframe of a while-stepping tracepoint. (gdb) tfind Found trace frame 0, tracepoint 1#0 vfs_read (file=0xffff8801f7bd4c00, buf=0x7fff74e4edb0 <Address 0x7fff74e4edb0 out of bounds>, count=16, pos=0xffff8801f4b45f48) at /build/buildd/linux-3.2.0/fs/read_write.c:365
365 { -#Following commands will swith KGTP to replay mode. +}}} +Following commands will swith KGTP to replay mode. +{{{ (gdb) monitor replay (gdb) tfind -1 No longer looking at any trace frame#0 vfs_read (file=0xffff8801f7bd4c00, buf=0x7fff74e4edb0 <Address 0x7fff74e4edb0 out of bounds>, count=16, pos=0xffff8801f4b45f48) at /build/buildd/linux-3.2.0/fs/read_write.c:365
365 { -#Then you can use execution commands. +}}} +Then you can use execution commands. +{{{ (gdb) n 368 if (!(file->f_mode & FMODE_READ)) (gdb) p file->f_mode $5 = 3-#Set breakpoints (Just valid in replay mode, will not affect Linux kernel execution).
+}}}+Set breakpoints (Just valid in replay mode, will not affect Linux kernel execution).
+{{{ (gdb) b 375Breakpoint 2 at 0xffffffff81179b75: file /build/buildd/linux-3.2.0/fs/read_write.c, line 375.
(gdb) c @@ -1331,7 +1337,9 @@rw_verify_area (read_write=0, file=0xffff8801f7bd4c00, ppos=0xffff8801f4b45f48, count=16)
at /build/buildd/linux-3.2.0/fs/read_write.c:300 300 inode = file->f_path.dentry->d_inode; -#Use reverse-execution commands. +}}} +Use reverse-execution commands. +{{{ (gdb) rsBreakpoint 2, vfs_read (file=0xffff8801f7bd4c00, buf=0x7fff74e4edb0 <Address 0x7fff74e4edb0 out of bounds>, count=16,
======================================= --- /wiki/HOWTOCN.wiki Tue May 7 23:44:09 2013 +++ /wiki/HOWTOCN.wiki Tue May 7 23:49:23 2013 @@ -1299,7 +1299,7 @@ === 读while-stepping的traceframe ===不同step的数据将会被记录到不同的traceframe中,你可以用tfind ([https://code.google.com/p/kgtp/wiki/HOWTOCN#用tfind选择trace帧缓存里面的条 目]) 选择他们。<br> -或者你可以将KGTP切换到回放模式,这样GDB可以用执行和反向执行命令选择一个 while-stepping tracepoint的traceframe。例如: +或者你可以将KGTP切换到回放模式,这样GDB可以用执行和反向执行命令选择一个 while-stepping tracepoint的traceframe。例如:<br>
用tfind选择一个while-stepping的traceframe。 {{{ (gdb) tfind