在C中,如果你有一个函数返回“总是”相同的结果,你可以这样做:
(gdb) p foo()
但是如果这个函数总是返回一个随机结果,那么如何在不使用变量的情况下打印该值呢?其他细节,如果你没有这个函数的调试信息,它来自一个剥离的库。
不能使用(gdb) p myRandom(),它将导致与应用程序使用的值不同的结果。
你可能会问:“为什么你使用一个随机函数,而不使用它的结果”,假设返回只是函数所做的额外事情。
我的代码使用以下共享库
Module Shared
let state = new AClrClass()
let fun1 x .... = // shared function
.... // uses state
在使用共享库的示例中,所有函数都共享state,即使在并行调用多个main函数(在下面的代码中)时也是如此。
Module Caller
let f1 x = Shared.fun1 x .... // other code omitted
let f2 x = Shared.fun1 x .... // many other functions uses the f