我正在努力让midi编译器PMML再次运行。是的,它本身就是一种编程语言,可以编译标准的midi文件。简而言之,在Windows下使用cygwin和minGW,最新版本使程序正常运行之后,我想继续使用linux系统来实现它。
然而,在将其移至Linux系统之前,必须应用一些初始补丁。
我选择了Arch 64位,在Windows 7 64位的VMWare播放器6.0.2下运行。 当我将源移动到arch时,它们编译得很好,但在测试套件中失败了,给出了段错误。随后用gdb探讨了一下,不知怎的,一个函数正在变坏记忆,但我不能为我的生活弄清楚为什么它这样做。据我所知,Windows和Linux以不同的方式分配内存,但只是看不出问题出现的原因。任何帮助跟踪这一点将不胜感激。 我正在与之合作的消息来源。 https://dl.dropboxusercontent.com/u/3051632/pmml-0.2p2.tar.gz
谢谢!
修改。似乎在看了一段时间的代码后,答案只是让我脸红了......其中一个非常简单的事情。似乎在函数__get_expression()中,程序发生了分裂,它崩溃的原因是...一个简单的未赋值变量问题,编译没有捕获。现在,找出要传递给函数的内容以使其正常工作。
答案 0 :(得分:0)
尝试使用valgrind 。它是跟踪内存问题的最佳linux工具。
您所要做的就是通过valgrnid运行您的应用程序:
# valgrind --leak-check=full --show-reachable=yes ./your_app