小编mez*_*zda的帖子

如何使用sed删除文件的最后n行

我想从文件末尾删除一些n行.这可以用sed完成吗?

例如,要删除2到4行,我可以使用

$ sed '2,4d' file
Run Code Online (Sandbox Code Playgroud)

但我不知道行号.我可以删除最后一行使用

$sed $d file
Run Code Online (Sandbox Code Playgroud)

但我想知道从最后删除n行的方法.请告诉我如何使用sed或其他方法来做到这一点.

linux bash shell sed

132
推荐指数
10
解决办法
20万
查看次数

为什么我的可执行文件中的入口点地址是0x8048330(0x330是.text部分的偏移量)

我写了一个小程序添加到整数和使用"readelf -a executable_name"它显示了elf标题中的入口点地址:

Entry point address: 0x8048330
Run Code Online (Sandbox Code Playgroud)

我的可执行文件如何事先知道这个地址,甚至在加载器加载到内存之前?elf_format.pdf表示该成员提供系统首先转移控制的虚拟地址,从而启动该过程.任何人都可以解释这句话的含义是什么,这里虚拟地址的含义是什么?

另请告诉我,可执行文件的值为0x8048330,作为入口点地址.只是为了交叉检查我编译了另一个程序,为此,入口点地址保持相同的值0x8048330(两种情况下.text部分的偏移量为0x330).

c linux x86 assembly elf

19
推荐指数
3
解决办法
8968
查看次数

如何使用gdb逐步执行宏扩展的每一行

我有一个宏,其定义大约有50行,并且有很多'if else'语句.此宏def'n出现在.h文件中.我在TUI模式下运行'gdb',但是当执行到达该宏时,代码窗口变为空白并且仅在宏代码执行后返回.我希望逐行执行完整的宏代码.请告诉我怎么做(一种方法是用代码中的定义替换宏然后重新编译它.我不想使用这个选项,因为我的代码中有几个这样的宏).

任何帮助将不胜感激.期待获得此问题的解决方案.如果有其他方法解决此问题而不是使用预处理文件,请告诉我?我有一个代码,它可以运行几百个.c和.h文件.

c linux gdb

13
推荐指数
2
解决办法
6932
查看次数

Elf的.rel.text部分中R_386_32/R_386_PC32的含义

要了解重定位的概念,我写了一个简单的chk.c程序如下:

  1 #include<stdio.h>
  2 main(){
  3         int x,y,sum;
  4         x = 3;
  5         y = 4;
  6         sum = x + y;
  7         printf("sum = %d\n",sum);
  8 }
Run Code Online (Sandbox Code Playgroud)

它的等效汇编代码,使用"objdump -d chk.o"是:

00000000 <main>:
   0:   55                      push   %ebp
   1:   89 e5                   mov    %esp,%ebp
   3:   83 e4 f0                and    $0xfffffff0,%esp
   6:   83 ec 20                sub    $0x20,%esp
   9:   c7 44 24 1c 03 00 00    movl   $0x3,0x1c(%esp)
  10:   00 
  11:   c7 44 24 18 04 00 00    movl   $0x4,0x18(%esp)
  18:   00 
  19:   8b …
Run Code Online (Sandbox Code Playgroud)

c linux x86 assembly

11
推荐指数
2
解决办法
4058
查看次数

wireshark如何将某些数据包标记为"重新组装的pdu的tcp段"

我在wireshark中打开了一个pcap,它显示了很多数据包作为"重新组装的pdu的tcp段".wireshark如何确定哪些tcp数据包是重组pdu的片段?我无法找到任何标题字段或其他任何wirehark可以确定这一点.

任何帮助将不胜感激.谢谢 !!!

network-programming packet-capture tcpdump wireshark wireshark-dissector

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

使用“rbreak filename.c:”在文件中放置断点。不起作用

我想在文件的所有函数上放置断点。我遇到了这个链接:http : //sourceware.org/gdb/download/onlinedocs/gdb/Set-Breaks.html#Set-Breaks

它建议为此使用 rbreak 命令。当我使用“rbreak”时。,它按预期工作正常,并在程序的所有函数中放置断点。但是什么时候用

rbreak 文件名.c:。

这根本不起作用,也没有在任何地方放置断点。我什至尝试了这种在 : 周围放置空格的变体,但即使这样也行不通。

关于如何做到这一点的任何想法?有可能吗?任何帮助将不胜感激。

谢谢,维卡斯

gdb

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

如何从RAM获取数据?

在C中,每个字节都是可单独寻址的.假设一个整数(比如使用4个字节)有一个地址0xaddr(32位,假设我们有32位处理器,32位地址总线和32位数据总线),并假设整数的值为0x12345678.现在,如果我从内存中获取此值,处理器如何执行此操作?处理器是否在0xaddr地址线上放置(32位地址),然后获取8位数据0x12.然后处理器将0xaddr+1在地址线上加速,然后获取另一个8位数据0x34,依此类推整数的4个字节?或者处理器是否只是一次放置0xaddr并读取4个字节,从而利用其完整的32位数据总线?

c memory ram x86

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

在什么情况下内存是字节或字可寻址的以及为什么

内存可以是字节可寻址的,也可以是字(2字节、4字节等)可寻址的(如果我错了,请纠正我)。

这(字节可寻址或字可寻址)取决于处理器架构吗?如果是,在什么情况下我们使用字节可寻址内存,在什么情况下我们使用字可寻址内存?

其原因是什么?换句话说,为什么存储器字节可寻址(如果是这样)以及为什么字可以寻址(如果是这样)及其原因。我在这个网站上看到了一些关于字节可寻址内存的问题,但没有人提供这些问题的答案。

memory cpu-architecture microprocessors

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

frame包含"\ x03\x00\x0e\xa8"在wireshark中的显示过滤器显示不包含这些字节的数据包

我在wireshark中使用了以下过滤器来查找包含这些字节的数据包:

frame contains "\x03\x00\x0e\xa8"
Run Code Online (Sandbox Code Playgroud)

但是当我看到这个过滤器的结果时,它会显示超过1k的数据包,甚至不包含这些字节.例如,它甚至显示以下以太网数据包:

00219ba0610678e7d1c625f40800450000282a0340008006cd88c0a87801d43af65f059e00503bac54cf9f17722a5010ffff04e50000
Run Code Online (Sandbox Code Playgroud)

这个字节包含在这个数据包中.类似地,显示了几个其他分组,而实际上只有两个包含这些字节的分组也被显示.谁能告诉我这里的问题是什么?任何帮助都将得到很高的评价.谢谢

network-programming packet-capture tcpdump wireshark wireshark-dissector

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

如何编辑wireshark pcap来改变数据包的顺序

我有一个使用wireshark捕获的pcap文件.假设pcap有6个包,编号从1到6,如下所示.现在我想编辑这个pcap文件,以便我以不同的顺序获取数据包.例如,如果原始pcap包是

1,2,3,4,5,6
Run Code Online (Sandbox Code Playgroud)

我想要一个新的pcap编辑后,现在数据包在顺序(例如)如下:

2,3,1,4,5,6
Run Code Online (Sandbox Code Playgroud)

类似地,我可以有一些其他订单,例如,2,4,5,6,1,3或任何其他订单.

任何人都可以让我知道我该怎么做?(可能使用wireshark或任何其他方法).任何帮助将不胜感激.谢谢

network-programming packet-capture tcpdump wireshark wireshark-dissector

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