我看到travis-ci上的构建失败,我无法在本地机器上重现.是否有设置VM的说明与travis-ci linux构建环境相同?我很高兴travis-ci已经揭示了一个新的错误,但通过发送添加调试代码的提交来调试它并不那么兴奋.
我的目标是确定何时执行命令,确切地说它读取和写入哪些文件.在linux中,我可以使用ptrace(有工作,类似于strace的工作),在freebsd和MacOS上我可以使用ktrace系统命令执行此操作.您将在Windows中使用什么来获取此信息?
到目前为止,我的研究表明,我要么使用调试器接口(在许多方面类似于ptrace),要么使用ETW.第三种方法是插入DLL以拦截系统调用.不幸的是,我没有经验可以猜测每种方法的挑战性如何.
有什么建议?
对不起,我无法发布代码来重现这个.我的问题正是我不知道如何调试这个问题.
我正在使用ptrace PTRACE_O_TRACEFORK | PTRACE_O_TRACEEXEC | PTRACE_O_TRACEVFORK | PTRACE_O_TRACEVFORKDONE | PTRACE_O_TRACECLONE
跟踪一个进程,它是孩子(和孩子们的孩子).机制很像strace
,但目的略有不同,因为我只是跟踪读取或修改的文件.
我的代码(用C编写)在x86-64架构上的Debian wheezy和Debian jessie上运行良好(在i386上也经过了较少的测试).当我尝试在Ubuntu Precise x86-64虚拟机(使用3.2.0内核)上编译和运行时,我遇到了麻烦.
在Precise机器上,我有时发现PTRACE_EVENT_VFORK
在vfork
呼叫发生后我没有立即收到,而是开始接收事件(几个SIGSTOP
事件和一些系统调用)而没有得到PTRACE_EVENT_VFORK
事件.我没有看到正在执行的系统调用中有任何可疑的行为,并且行为是不可预测的.
我不知道该尝试将其减少到最小的错误情况,我真的不知道可能出现什么问题,从未见过这种丢失事件的行为.可以想象,差异不是内核,而是我正在跟踪的构建工具(这是python + gcc的组合).
有什么建议?
我想知道如何在flutter应用程序中共享文件?
我看到了一些使用Intent和mojo的旧引用,但似乎不再存在.这似乎是我们应该能够以跨平台方式处理的标准功能(显然ios与android之间存在一些差异).
目前共享文件的最佳做法是什么(例如通过电子邮件)?我可以接受的最接近的是UrlLauncher,我可以想象它可以用来为我想要共享的文件启动一个处理程序,但它似乎是一个延伸.
我想创建两个 Markdown 文件,它们的部分之间有链接。这里的挑战是,无论我要求 pandic 将它们连接到单个 HTML 文件还是分离 HTML 文件,我都希望文件正常工作。麻烦的是,在后一种情况下,链接需要知道其他 HTML 文件的名称才能正常工作。
pandoc 有没有办法在不创建不同版本的降价输入的情况下管理这个?