小编bro*_*oot的帖子

Vim undo:文件写入后撤消更改

在我的vim代码中,我做了很多更改,然后做了一个ZZ(保存并退出).但后来我意识到我不需要那些改变.有没有一种方法可以在使用某些缓冲区进行更改之前返回状态,在缓冲区中仍可能存储该数据.保存和退出后我没有做任何更改.

vim undo

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

如何解码二进制/原始谷歌protobuf数据

我有一个带有编码的protobuf数据的coredump,我想解码这些数据并查看内容.我有.proto文件,它在原始协议缓冲区中定义此消息.我的proto文件看起来像这样:

$  cat my.proto 
message header {
  required uint32 u1 = 1;
  required uint32 u2 = 2;
  optional uint32 u3 = 3 [default=0];
  optional bool   b1 = 4 [default=true];
  optional string s1 = 5;
  optional uint32 u4 = 6;
  optional uint32 u5 = 7;
  optional string s2 = 9;
  optional string s3   = 10; 
  optional uint32 u6 = 8;
}
Run Code Online (Sandbox Code Playgroud)

和protoc版本:

$  protoc --version
libprotoc 2.3.0
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

  1. 从核心转储原始数据

    (gdb) dump memory b.bin 0x7fd70db7e964 0x7fd70db7e96d

  2. 把它传递给protoc

    //proto file (my.proto) is in …

serialization protocol-buffers

15
推荐指数
3
解决办法
3万
查看次数

如何在linux内核中使用lockdep功能进行死锁检测

我有一个Linux内核驱动程序和一个与之交互的用户应用程序.内核驱动程序中存在死锁.我在Linux内核中遇到了这个名为" lockdep "的功能.我能够配置它并重新编译我的内核(我确实在/ proc中看到了lockdep文件夹).但我不知道如何推断此工具的输出或如何使用此工具调试驱动程序.任何帮助将非常感谢.谢谢!

c linux kernel deadlock linux-kernel

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

C++错误:体系结构x86_64的未定义符号

我正在尝试学习C++,并尝试解决一个问题,在这个步骤中给出了许多步骤以及可以采用的步骤的数量,给出了爬上台阶的可能方法的所有排列.因此,例如,如果有5个步骤可以攀爬,我可以一次向上移动1步,一次向上移动2步,或者一次向上移动3步,我需要打印出1,2和3的所有排列,加起来5: [1, 1, 1, 1, 1],[1, 1, 1, 2]....

我开始使用这段代码(它还没有完成),但是我收到了这个错误:

Undefined symbols for architecture x86_64:
  "_num_steps(int, std::__1::vector<int, std::__1::allocator<int> >, std::__1::vector<std::__1::vector<int, std::__1::allocator<int> >, std::__1::allocator<std::__1::vector<int, std::__1::allocator<int> > > >, std::__1::vector<std::__1::vector<int, std::__1::allocator<int> >, std::__1::allocator<std::__1::vector<int, std::__1::allocator<int> > > >)", referenced from:
      num_steps(int, std::__1::vector<int, std::__1::allocator<int> >) in num_steps-FTVSiK.o
ld: symbol(s) not found for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

我真的不明白我做错了什么.如果我能得到一些帮助,我会很感激.谢谢!

#include <iostream>
#include <vector>
#include <string>
#include <cmath>

using namespace std;

//prototypes
void _num_steps(int amount, vector<int> possible_steps, vector<vector<int>> steps_list,             vector<vector<int>> result);
int sum(vector<int> steps_list);
void num_steps(int …
Run Code Online (Sandbox Code Playgroud)

c++ vector permutation c++11

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

是什么让内核/操作系统实时?

我正在阅读这篇文章,但我的问题是在一个通用的层面,我正在考虑以下几点:

  1. 内核可以实时调用,因为它有实时调度程序吗?或者换句话说,假设我有一个Linux内核,如果我将默认调度程序从O(1)或更改CFS为a real time scheduler,它是否会成为RTOS?
  2. 它需要硬件的任何支持吗?通常我看到嵌入式设备有RTOS(例如VxWorks,QNX),这些有没有特殊规定/ hw来支持它们?我知道RTOS进程的运行时间是确定性的,但是可以使用longjump/setjump在确定的时间内获得输出.

我真的很感激它的一些输入/见解,如果我对某事有误,请纠正我.

linux rtos scheduler linux-kernel

9
推荐指数
2
解决办法
3651
查看次数

从交流程序测量页面错误

我正在比较一些系统调用,我从/向内存读/写.是否有任何API定义来测量页面错误(页面输入/输出)C

我找到了这个库 libperfstat.a,但它是为了AIX,我找不到任何关于linux的东西.

编辑: 我知道linux中的time&perf-stat命令,只是探索我是否可以在C程序中使用.

c linux page-fault perf

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

设置linux套接字有什么作用 - 高优先级?

从linux socket手册:

SO_PRIORITY
为要在此套接字上发送的所有数据包设置协议定义的优先级.Linux使用此值来排序网络队列:可以首先处理具有更高优先级的数据包,具体取决于所选的设备排队规则.

这是使用以下设置:

int optval=7 // valid values are in the range [1,7]  
             // 1- low priority, 7 - high priority  
setsockopt(socket, SOL_SOCKET, SO_PRIORITY, &optval, optlen)   
Run Code Online (Sandbox Code Playgroud)

并说,这个过程有:
a.来自socket_1- socket_10,
b的10个低优先级套接字(优先级= 4).1个高优先级套接字(优先级= 7) - socket_11

在以下场景中会发生什么:

  1. send():进程发送多个消息socket_1- socket_10&on socket_11,IMO上的消息socket_11将优先于发送的消息socket_1- socket_10.

  2. recv():如果有在上述所有插口接收mutilple封邮件,不socket_11超过读取信息获得较高的优先级socket_1- socket_10

  3. 有测量从命令行中使用的工具,如插座优先级的方式lsof,netstat等等?

sockets linux network-programming tcp

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

调试内核模块(内存损坏_

我正在调试我的内核模块,它似乎有内存损坏,基本上由alloc_netdev()为'net_device'实例分配的一块内存已经损坏.

1)我打开CONFIG_DEBUG_KERNEL,CONFIG_DEBUG_SLAB,CONFIG_DEBUG_KMEMLEAK在我的内核的.config,但是不知道从什么期望kmemleak.是否应该在我阅读时打印出可疑内存泄漏的跟踪转储/sys/kernel/debug/kmemleak?有没有办法重置累积的统计数据/信息kmemleak?最重要的是 - 任何人都可以帮助破译输出,例如:

unreferenced object 0xc625e000 (size 2048):
  comm "swapper", pid 1, jiffies 4294937521
  backtrace:
    [<c00c89f0>] create_object+0x11c/0x200
    [<c00c6764>] __kmalloc_track_caller+0x138/0x178
    [<c01d78c0>] __alloc_skb+0x4c/0x100
    [<c01d8490>] dev_alloc_skb+0x18/0x3c
    [<c0198b48>] eth_rx_fill+0xd8/0x3fc
    [<c019ac74>] mv_eth_start_internals+0x30/0xf8
    [<c019c5fc>] mv_eth_start+0x70/0x244
    [<c019c810>] mv_eth_open+0x40/0x64
    [<c01e00f0>] dev_open+0xb4/0x118
    [<c01df788>] dev_change_flags+0x90/0x168
    [<c001a3e4>] ip_auto_config+0x1bc/0xecc
    [<c00212f4>] do_one_initcall+0x5c/0x1bc
    [<c00083d0>] kernel_init+0x8c/0x108
    [<c0022f58>] kernel_thread_exit+0x0/0x8
    [<ffffffff>] 0xffffffff
Run Code Online (Sandbox Code Playgroud)

2)我也想知道我是否可以在这个内存上应用一些"只读"属性,这种方式我希望Oops在有人试图修改内存时生成.听起来合理吗?

感谢任何建议,谢谢.

标记

arm memory-management linux-device-driver linux-kernel

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

你如何测试n-queens中的对角线?

我正在研究n-queen回溯.有人可以向我解释如何other_row_pos检查对角线?我不确定它为什么会起作用或者它是如何工作的.

取自wikibooks - http://en.wikibooks.org/wiki/Algorithm_Implementation/Miscellaneous/N-Queens:

bool isSafe(int queen_number, int row_position) {
    // Check each queen before this one
    for(int i=0; i<queen_number; i++) {
        // Get another queen's row_position
        int other_row_pos = position[i];
        // Now check if they're in the same row or diagonals
        if(other_row_pos == row_position || // Same row
           other_row_pos == row_position - (queen_number-i) || // Same diagonal
           other_row_pos == row_position + (queen_number-i))   // Same diagonal
            return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

c++ n-queens

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

如何将vim设置为默认的cscope编辑器?

cscope打开我的文件vi.有没有办法改变它,以便它打开文件vim

编辑:我试过:

export CSCOPE_EDITOR=vim
Run Code Online (Sandbox Code Playgroud)

出于一些奇怪的原因,如果我:help在打开的文件上键入,它会显示vim help哪个表明它已打开vim但似乎没有读取我的文件.vimrc.我该怎么读它.vimrc

编辑2:机器/工具信息

[user@machine] $  printenv | grep -i cscope    
CSCOPE_EDITOR=vim

[user@machine] $  vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jul 10 2012 08:48:09)
Included patches: 1, 3-4, 7-9, 11, 13-17, 19-26, 29-31, 34-44, 47, 50-56, 58-64, 66-73, 75, 77-92, 94-107, 109, 202, 234-237

[user@machine] $  cscope -V
cscope: version 15.5
Run Code Online (Sandbox Code Playgroud)

linux vim cscope

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