小编LB4*_*B40的帖子

获取C(gcc)中当前函数的指针?

gcc中有一个魔术变量,它持有一个指向当前函数的指针吗?

我想有一种表包含每个函数指针的一组信息.

我知道有一个__func__变量包含当前函数的名称作为字符串但不作为函数指针.

这不是为了调用函数而是仅仅用作索引.

编辑 基本上我想做的是能够在执行当前函数之前运行嵌套函数(并且还捕获返回以执行某些操作.)基本上,这就像__cyg_profile_func_enter和__cyg_profile_func_exit(检测函数).但问题是这些仪器功能是全局的而不是功能专用的.

编辑 在Linux内核中,你可以使用unsigned long kallsyms_lookup_name(const char *name)include/linux/kallsyms.h...请注意CONFIG_KALLSYMS选项必须被激活.

c gcc function-pointers

12
推荐指数
2
解决办法
1万
查看次数

成功的领域特定语言?你用哪一个?

我对Domain Specific Languagess的设计和实现感兴趣.我所知道的大部分DSL源于学术界.

你能给我一些指向业内实际使用的DSL的指针吗?并且你每天都在使用...这真的很方便..

(我也对声明性语言感兴趣,但不是真正基于xml的...)...

我想建立一个(非详尽的)行业部署语言清单......我知道这是巨大的......

有时,我正在使用通用语言来实现可以使用DSL轻松完成的事情.

编辑 我主要对应用程序导向的DSL感兴趣,而不是小嵌入式语言.例如,SQL匹配我正在寻找的东西,但java中嵌入的SQL对我不感兴趣.我正在寻找的那种语言的另一个例子是X#

dsl

11
推荐指数
4
解决办法
3099
查看次数

警告与nftw

我正在尝试使用nftw来处理目录下的一些文件

#include <ftw.h>
#include <stdio.h>

 int wrapper(const char * fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) {
  printf("File %d\n", ftwbuf->base);
  return(0);
} 


int main(int argc, char ** argv) {
    const char *name;
    int flags = 0;
    name = argv[1];
    nftw(name, wrapper, 20, flags);
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

当我正在编译时(gcc kconfig_parser.c -o parser),我收到了这个警告并且出现了这个错误..

kconfig_parser.c:5: warning: ‘struct FTW’ declared inside parameter list 
kconfig_parser.c:5: warning: its scope is only this definition or declaration, which is probably not what you want …
Run Code Online (Sandbox Code Playgroud)

c unix linux posix

9
推荐指数
1
解决办法
3894
查看次数

(交互式)图形在网页上的图论中?

可能重复:
javascript中的图形可视化代码?

我必须在网页上集成带有节点和边的图形.理想情况下,我希望能够与它进行交互(比如移动节点).

实际上,我开始代表树木,所以我希望能够折叠子树.

我怎样才能做到这一点 ?我正在考虑谷歌的可视化API,但我没能找到我要找的那种可视化(组织结构图不允许有多个父亲,如果我深知)

我不知道那种技术,所以我的标签可能不太准确:-).

谢谢

javascript python ajax graph

9
推荐指数
1
解决办法
3916
查看次数

添加传递给gcc?

有没有人给gcc添加传球?或者不是真的通过,但添加一个选项来做一些讨厌的事情... :-) ...

在从另一个函数返回之前调用函数仍然有同样的问题...所以我想通过在gcc中实现一些东西来调查它...

干杯.

编辑:向编译器添加传递意味着重新访问树以执行某些优化或某些分析.我想模拟__cyg_profile_func_exit的行为,但仅限于某些函数,并且能够访问原始返回值.

所以我将尝试增强我的问题.我想模仿真正基本的AOSD行为.AOSD或面向方面的编程可以增加横切关注点(调试是一个跨领域的问题).

int main(int argc, char ** argv) {
  return foo(argc);
}

int foo(int arg_num) { 
   int result = arg_num > 3 ? arg_num : 42;
   return result;
}

int dbg(int returned) {
   printf("Return %d", returned);
}
Run Code Online (Sandbox Code Playgroud)

我想能够说,我想在执行foo函数后触发dbg函数.问题是如何告诉编译器修改控制流并执行dbg.应该在return和foo(argc)之间执行dbg ...

这与__cyg_profile_function_exit非常相似,但仅在某些情况下(__cyg_profile_function_exit中的问题是您无法轻易查看和修改返回的值).

c compiler-construction gcc

8
推荐指数
1
解决办法
2208
查看次数

如何在不查看GCC中的预处理代码的情况下知道包含哪些头文件?

我有一些大的C程序,我想知道我什么时候编译这个程序,实际上包含哪些头文件...

最简单的解决方案是打印预处理的代码并查看,但是你知道是否有编译方法,同时显示包含哪些头文件?

c gcc compiler-options c-preprocessor

8
推荐指数
2
解决办法
1611
查看次数

如何审核Java EE项目?

我将审核基于JSF/CDI/EJB3.0/JPA的Java EE Web项目的代码体系结构质量和可维护性(最终确保我们已经付出了代价)(仅仅是为了命名一些技术)参与).

这可能不是一个正确的问题,但你如何处理这类任务呢?基本上,我将从粗粒度到细粒度,即从整个架构到java代码.完全处理每一层是否更好?我应该花更多时间在低层吗?

你评估整个事情(构建,部署,测试)吗?

java architecture audit java-ee

8
推荐指数
1
解决办法
1836
查看次数

HashCode与SHA-1

我想比较一些代表树的大型对象并缓存一些东西,以避免每次新对象与已存在的对象进行比较...

问题是什么是最好的东西?(性能和碰撞之间的妥协......).

一方面,我有一个基于各种字段值的常规hashCode函数(遵循有效Java的第3章.但是我无法评估这种方法所带来的潜在冲突.

另一方面,我使用带有SHA-1算法的标准java发行版的MessageDigest方法.我认为它不会有效但我可能会减少碰撞.我对吗 ?在我的背景下它是一个正确的解决方案还是我完全错了?

问题是我不知道对象的大小.另请注意,计算的值不会在HashTable中使用.

谢谢...

java hashcode

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

OCaml的数据库绑定?

我正在尝试找到一个从OCaml程序访问数据库的库.尝试ocaml-sqlite后,我不满意,因为它有点慢.

我见过MySQL模块,但似乎没有维护.

mysql sql database postgresql ocaml

7
推荐指数
1
解决办法
2848
查看次数

Trac插件,带有里程碑和门票的图形表示

您是否使用任何trac插件以图形方式表示各种里程碑和门票的路线图?如果是这样,哪一个?

我发现活动门票的视图确实很模糊.我希望我的各个里程碑的树状表示附上门票,这是我项目的完整地图.

我已经看到Gantt插件不再维护了.

谢谢.

plugins trac

6
推荐指数
1
解决办法
1107
查看次数