小编and*_*dyn的帖子

如何防止pycallgraph进入标准库函数?

我正在使用命令行中的pycallgraph来分析和绘制一个相对简单的程序的调用图.但是,生成的图像包括标准库(线程,json,套接字)的内部,即使我不使用-s命令行选项.使用-e选项排除这些模块无效,使用-i会产生空调用图.我也尝试了cProfile,但它只绘制了主线程.

如何让pycallgraph只在我的代码中显示调用?目前凌乱的结果是没用的.

编辑:我正在使用0.5.1,可通过easy_install获得.运行pycallgraph ./cursesclient.py会输出:一个凌乱的调用图.如您所见,pycallgraph显示了模块json,re,编码,套接字和线程的内部结构.Re和编码永远不会直接在我的代码中调用,而是分别通过json和socket调用.

python profiling

15
推荐指数
2
解决办法
2553
查看次数

应该总是转换printf参数吗?

前段时间我正在寻找导致错误的数字数据写入日志文件的bug.原来问题是代码相当于以下代码:

int main(void) {
    struct {
        double a;
        int b;
    } s = { 1, 2 };

    printf("%lf\n", s.a);
    printf("%lf\n", s.b);
}
Run Code Online (Sandbox Code Playgroud)

正在输出

1.000000
1.000000
Run Code Online (Sandbox Code Playgroud)

显然printf,期望浮点寄存器中的第二个值,而不是堆栈中的第二个值.为了防止将来发生这样的错误,是否应该抛出所有printf参数以确保它们确实属于预期类型?

c c99

4
推荐指数
1
解决办法
285
查看次数

标签 统计

c ×1

c99 ×1

profiling ×1

python ×1