I know how to set a breakpoint at the begin of a function.it is "break function_name",but how to set a breakpoint at the exit/end of a function?
(In reply to comment #0) > I know how to set a breakpoint at the begin of a function.it is "break > function_name",but how to set a breakpoint at the exit/end of a function? you can dissembly the function in gdb, and get the address of exit/end of a function, then you can set breakpoint on that address, for example, "b *0x123456".
(In reply to comment #0) > I know how to set a breakpoint at the begin of a function.it is "break > function_name",but how to set a breakpoint at the exit/end of a function? test
(In reply to comment #1) > (In reply to comment #0) > > I know how to set a breakpoint at the begin of a function.it is "break > > function_name",but how to set a breakpoint at the exit/end of a function? > you can dissembly the function in gdb, and get the address of exit/end of a > function, then you can set breakpoint on that address, for example, "b > *0x123456". yes,I can set a breakpoint at the exit of a function in this way,but it can only be used once, because when I modified my code,the exit address of the function will also change,so I must modify "the gdb command file" synchronously.I use the gdb command in this way "gdb -p $(pidof vmserver) -x cmd.txt",and the gdb command lies in the file(cmd.txt).the file content is: b CDeviceMgr::queryPhyDevsInDomain command silent p pcUserCode c end c In this way,I can watch the input parameters of the function,but how to watch the output parameters? I hope that I can set the exit breakpoint as simple as the entrance breakpoint.The most important thing is that I hope,when I modified my code,the gdb command file will be no need to modify synchronously.
set record insn-number-max 10000000 record finish reverse-step record stop But that works only for functions not executing too long. GDB currently does not have the feature to find all the function exit points, I guess it would need some GCC debug info marking extension first.
There is a patch pending (maybe in assignment limbo) to add this feature. I think it can also be done from python, perhaps with some difficulty. On the gcc side: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49167