小编woo*_*tok的帖子

为初学者实现实时频谱

我想开发一个应用程序,它将音频(.wav)作为输入并显示其实时同步频谱。从我对这个主题的看法来看,这需要对波进行傅立叶变换。有人可以建议我应该从哪里开始吗?可能的参考资料和书籍。我想了解实时频谱实现的细节,而不是我非常熟悉的GUI的开发(在C#和C++中)。

c++ signal-processing fft frequency-analysis

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

使用调试符号从源代码编译glibc

我需要使用调试符号从源代码编译glibc。

1.我在哪里为此指定'-g'选项

2.我如何稍后将示例代码链接到此特定的glibc,而不是系统上安装的glibc?

linux linker gcc compilation glibc

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

运行独立共享库时 gdb 不加载符号

我有一个 PIC 共享库,它也有一个 main 函数

#include <dtest2.h>
#include <stdio.h>
extern const char elf_interpreter[] __attribute__((section(".interp"))) = "/lib/ld-linux.so.2";

int dtestfunc1(int x,int y) {
  int i=0;
  int sum = 0;
  for(i=0;i<=x;i++) {
    sum+=y;
    sum+=dtestfunc2(x,y);

  }
  return sum;
}

int main (int argc, char const* argv[])
{
  printf("starting sharedlib main\n");
  int val = dtestfunc1(4,5);
  printf("val = %d\n",val);
  _exit(0);
}
Run Code Online (Sandbox Code Playgroud)

该库链接到另一个共享库,该库具有从调用libdtest2的实现。dtestfunc2dtestfunc1

如果我直接在 dtestfunc1 上运行 gdb 使用

gdb libdtest1.so
Run Code Online (Sandbox Code Playgroud)

gdb 不加载 libdtest2.so 的符号。dtestfunc1因此我无法进入,如果我按 s,该函数就会执行并退出。

如果我创建一个在共享库上调用 dlopen 的驱动程序,则 gdb 会在执行 dlopen …

c linux gdb shared-libraries

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

构建linux内核

我刚刚得到了Robert Love的Linux Kernel Development一书.它有很多地方需要修改和构建内核.那我该怎么做呢.使用VM是否更好,或者我应该以某种方式获得适当的测试机器,因为我不想在我的系统和数据上搞砸.

linux build-process kernel

3
推荐指数
1
解决办法
151
查看次数

用于检查序列是否已排序的并行算法

我需要一个并行算法(成本最优)来检查给定的n个数字序列是否被排序.

sorting algorithm parallel-processing multithreading

3
推荐指数
1
解决办法
368
查看次数

require.js POST请求发现web api返回"解析json时出错"

根据Spotify Web API创建播放列表,一旦授权成功,具有access_token和一些其他参数的POST应该为用户创建新的播放列表.链接中的示例CURL命令

curl -X POST "https://api.spotify.com/v1/users/wizzler/playlists"  
-H "Authorization: Bearer {your access token}"  
-H "Content-Type: application/json" --data "{\"name\":\"A New Playlist\", \"public\":false}"
Run Code Online (Sandbox Code Playgroud)

这对我来说很好.但是当我从nodejs应用程序运行以下代码时,使用request库,响应统计信息Error parsing json.

我在这里失踪了什么?

更新:我试图改变dataform为每request.js例子.我也尝试删除stringify调用,并直接传递对象.错误仍然存​​在.

var request = require('request');
var authOptions1 = {
    url: 'https://api.spotify.com/v1/users/' + username + '/playlists',
    data: JSON.stringify({
        'name': name,
        'public': false
    }),
    dataType:'json',
    headers: {
        'Authorization': 'Bearer ' + access_token,
        'Content-Type': 'application/json',
    }
};

console.log(authOptions1);

request.post(authOptions1, function(error, response, body) {
    console.log(body);
});
Run Code Online (Sandbox Code Playgroud)

javascript json spotify node.js

3
推荐指数
1
解决办法
1561
查看次数

Malloc没有失败,但系统内存不足

我正在linux中开发一个非抢占式多线程库(在C中).要求是使用getcontext setcontextetc来创建新线程并管理它们.图书馆正常工作正常情况.

我为每个线程对象(MyThread)使用malloc,并且"malloc failed"如果malloc返回NULL,我会通过打印消息正常退出.为了测试极端条件,我运行了一个递归的fibonacci函数,它创建了子线程来计算子计算.我跑fib了越来越多的数字并且达到了限制在fib 26.

但malloc并没有抱怨.这是linux系统到达OOM并杀死进程.

问题:malloc当系统发现自己没有空间时,为什么返回成功(一个新指针)?

c linux memory multithreading

3
推荐指数
1
解决办法
100
查看次数

LLVM后端:替换x86后端的间接jmps

我想替换jmp *(eax)代码中的间接指令以mov *(eax),ebx; jmp *ebx获取x86可执行文件.

在实现之前,我想制作LLVM编译器,每次jmp *(eax)通过添加一些打印语句检测到指令时记录输出.

然后我想继续替换间接序列.

从我从谷歌搜索和文章中看到的,我可以通过修改llvm后端中的x86asmprinter来实现这一点.但我不知道该怎么做.任何帮助或阅读将不胜感激.

注意:我的实际要求涉及间接跳转和弹出,但我想从此开始,以便在我深入了解之前了解更多后端.

x86 code-generation llvm codegen

3
推荐指数
1
解决办法
383
查看次数

是否为C++中的Default Constructor创建了汇编代码

如果我没有在C++或任何其他构造函数的类中定义默认构造函数,我已经读过编译器为您创建一个默认构造函数.但是我创建了一个测试类,将其编译为汇编代码并进行检查以发现没有创建任何排序.
有人可以澄清如何创建默认构造函数的代码,或者它是否首先创建?

c++ default-constructor

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

SublimeText:如何找到"Next Build Result"命令将其映射到另一个键?

背景:我正在使用构建系统设置在SublimeText3上处理SML文件.

构建之后,我可以使用F4密钥成功跳转到第一个错误.我想为相同的"Next Result"命令添加另一个键映射,例如:Cmd+N在Vintage模式下.

  1. 我应该在我的keybindings文件中添加什么才能实现此目的?
  2. 有什么文档,文件,你找到/环顾四周找到问题1的正确答案?你的想法过程简要说明了什么?

编辑:改变所需要的按键绑定,从<leader>cnCmd+N使事情变得更容易

sublimetext sublimetext3

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

C++中简单迭代的地图列表性能比较

我有一个清单和一张地图.它们中的每一个都包含相同的元素,只是在地图中,它被整数索引(我不认为这个问题是相关的).如果我从做一个简单的迭代container.begin()container.end(),会有一个列表和地图之间的复杂性有区别吗?列表和地图之间的实际表现会有所不同吗?

c++ algorithm stl

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

如何使用SIGUSR1替代值

man 7 signal其中显示SIGUSR1为SIGUSR1 30,10,16 Term User-defined signal 1.如果我在我的C代码中使用SIGUSR1,我得到值10.有没有办法访问其他值30和16?是否可以在我的信号处理程序中明确使用它们

if(signo == 16)
{
   printf("SIGUSR1 type 2 received\n");
}
Run Code Online (Sandbox Code Playgroud)

编辑:在我的代码中,有一个使用SIGUSR1的case语句.我还需要一个自定义信号.我知道有RTSIGNALS和其他选项.但我想知道为什么他们在man page中指定16,30并且从未提供使用它的方法.

c linux signals

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

从C++核心转储中推断源行号

我有一个剥离的linux系统,我必须在另一个系统上交叉编译我需要的所有应用程序.这些应用程序通常是核心,我从中得到的唯一信息是核心和指令偏移的功能.如果我没有其他选项,我会对可执行文件执行objdump,并尝试从指令偏移量和汇编代码段中猜测源代码.这是我的生活.

注意:应用程序使用g ++进行交叉编译并被删除.所以gdb对我帮助不大

问题:由于编译器/ gcc已将源代码行转换为汇编指令,是否会有一些选项可以在指令偏移量与行之间产生相关性?

c++ linux compiler-construction gcc

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