GNU Debugger 7.0 released, makes headway on reverse-debugging By Alex Handy

From: http://www.sdtimes.com/content/article.aspx?ArticleID=33820


GNU Debugger 7.0 released, makes headway on reverse-debugging
By Alex Handy

十月 9, 2009 —
The GNU Debugger added a bevy of features when version 7.0 was released on Tuesday. The new features bring support for multiple platforms, including x86/x86_64 Darwin platforms. Additionally, developers can now script the debugger with Python, and can also use reverse-debugging to step backward in an application during testing.

But reverse-debugging is still an early feature for the GNU Debugger. In version 7.0, the first to support such debugging, only three platforms are capable of supporting reverse-debugging: i386 Linux, AMD64 Linux and moxie-elf. The GNU Debugger team is actively seeking contributors to expand this support to Mac OS X and Windows platforms.

Reverse-debugging, however, adds significant functionality to the GNU Debugger. With it comes new commands for the debugger that can instruct it to step back to a previous break point, or run the entire application in reverse, allowing issues to be traced back to their source once they occur.

Because reverse-debugging is still in an early stage for it, and the GNU Debugger team is also hoping to refine support for the i386 platform to improve performance. Sys_brk also causes the debugger some trouble in reverse-debugging mode, and future road maps for the application include the ability to better deal with freed memory.

GNU Debugger 7.0 also includes a host of smaller fixes and updates. It is the first version to include a native configuration for the x86 Darwin platform. Version 7.0 is also the first version of GNU Debugger to support inline functions. The debugger can also now retrieve shared library files from remote targets.

There is also a new interface for “just in time” (JIT) compilation, allowing developers to debug JIT-compiled applications with less headaches involved. In version 7.0, tracepoints may now be conditional, and Ada task switching is supported. Thread switching is also now supported on Tru64.

The GNU Debugger is available under the GNU Public License here.
http://www.gnu.org/software/gdb/

====================================================
概要:
  1. GNU debugger version 7.0 可以支援 reverse-debugging,也就是回到之前的 break point,但此功能只能支援在 i386 Linux, AMD64 Linux and moxie-elf 平台。
  2. GNU debugger version 7.0 亦新增下列功能:
  • a host of smaller fixes and updates.
  • support inline functions.
  • retrieve shared library files from remote targets.
  • a new interface for “just in time” (JIT) compilation, allowing developers to debug JIT-compiled applications with less headaches involved.

利用 usb 安裝 windows xp

※ 引述《AxelRubiPell ()》之銘言:

(deleted...)


我不是神人 QQ

只是剛好我知道要用USB開機灌XP的步驟是甚麼

1. 下載 HPUSBFW.exe 這個程式

2. 把它裡面的檔案解壓縮出來 (推薦用用7-zip)
這裡我把它解壓縮到 HPUSBFW 資料夾裡.

3. 執行 HPUSBFW.exe. 利用這個程式格式化您的USB隨身碟.
要注意的是
a. File System 要選 [FAT32]
b. 要勾選 [Create Dos startup disk]
然後 using DOS system files located at:
[這裡選擇 HPUSBFW 資料夾]

4. 格式化完以後把XP光碟裡的目錄 i386, 整個都copy到隨身碟裡.

5. win98資料夾裡的檔案也copy到USB去.

6. 用隨身碟開機. 在dos prompt下輸入: cd i386
然後再輸入 winnt.


我把檔案都上傳到 http://www.badongo.com/file/12321250

大家可以試試看 還滿簡單的

VMware 利用 USB 開機

  1. 先新增一個Hard disk
  2. 選 use a physical disk
  3. 選 physical drive x, x代表第幾顆硬碟
  4. 進入 bios 設定開機順序
  5. 記得把 usb 隨身碟的順序設定在第一位
  6. 完成

[NS2] ARP in NS2

/* ======================================================================
Address Resolution (ARP) Header
====================================================================== */
#define ARPHRD_ETHER 1 /* ethernet hardware format */

#define ARPOP_REQUEST 1 /* request to resolve address */
#define ARPOP_REPLY 2 /* response to previous request */
#define ARPOP_REVREQUEST 3 /* request protocol address */
#define ARPOP_REVREPLY 4 /* response giving protocol address */
#define ARPOP_INVREQUEST 8 /* request to identify peer */
#define ARPOP_INVREPLY 9 /* response identifying peer */

#define ARP_HDR_LEN 28

struct hdr_arp {
u_int16_t arp_hrd;
u_int16_t arp_pro;
u_int8_t arp_hln;
u_int8_t arp_pln;
u_int16_t arp_op;
int arp_sha;
u_int16_t pad1; // so offsets are correct
nsaddr_t arp_spa;
int arp_tha;
u_int16_t pad2; // so offsets are correct
nsaddr_t arp_tpa;

// Header access methods
static int offset_; // required by PacketHeaderManager
inline static int& offset() { return offset_; }
inline static hdr_arp* access(const Packet* p) {
return (hdr_arp*) p->access(offset_);
}
};

-------------------------------------------------------------------------
About nsaddr_t:
It is the typedef of int32_t as following:

typedef
int32_t nsaddr_t;

Reference:
http://www.auto-nomos.de/ns2doku/config_8h-source.html

[NS2] The modification of ARP operation

Introduction:

The following debug messages show that the ARP operation in the NIST WiMAX module. In case of downlink (From BS to SS), as BS needs to send data packets (for example: CBR traffic), it first transmits a ARP request which the mac address of destination is -1 (it means broadcast). SS receiving the ARP request will reply the ARP reponse which the mac address of destination is set to BS's mac address. It is used for notifying BS that SS's mac address. Thus, BS can know SS's mac address through ARP operations.

The deubg messages:
============================================================================================
At 100.001125 in Mac 0 DestClassifier classifying packet for -1(size=28, type=ARP)
At 100.004529 in Mac 0 BS scheduler dlsubframe expires (frame=12499)
At 100.004530 in Mac 1 SS scheduler dlsubframe expires.
At 100.004638 in Mac 1 DestClassifier classifying packet for 0(size=28, type=ARP)
At 100.008481 in Mac 0 BS scheduler ulsubframe expires
At 100.008481 in Mac 1 SS scheduler ulsubframe expires.
At 100.008481 in Mac 1 Start contention in 0.000172(backoff=2, size=124, ps=0.000001)
At 100.009764 in Mac 1 sending packet (type=MAC, size=6, txtime=0.000030) bwreq
received bandwidth request of 34 bytes from 16385
At 100.012529 in Mac 0 BS scheduler dlsubframe expires (frame=12500)
At 100.012529 Allocating UL burst for Node 1:duration= 1
At 100.012529 in BS 0 send_nbr_adv (nb_neighbor=0)
At 100.012530 in Mac 1 SS scheduler dlsubframe expires.
At 100.016481 in Mac 0 BS scheduler ulsubframe expires
At 100.016481 in Mac 1 SS scheduler ulsubframe expires.
At 100.018092 in Mac 1 sending packet (type=ARP, size=34, txtime=0.000018)
At 100.018115 in Mac 0 DestClassifier classifying packet for 1(size=1500, type=cbr)
============================================================================================

Modification:
In our projects, BS will transmit the ARP request to RS, but RS would not relay it to SS. This will causeBS can not get SS's mac address. We will need to execute the following procedures to amend the classify:
1. We need to check the IP address of destination in BS whether is SS's IP address.
2. RS is capable of forwarding the ARP request or ARP reponse to BS/SS, thus ARP operation could be finished.

Reference:
http://www.pcnet.idv.tw/pcnet/network/network_ip_arp.htm
http://en.wikipedia.org/wiki/Address_Resolution_Protocol