Hi,
In my environment (x86-64), the following problem occurred by
executing dom0cut script.
# dom0cut_x86.py -oDump2006122801 -dvmcore.2006122801 --target=0 -x/
root/xen-3.0.4-testing.hg/xen/xen-syms -ax86_64 -f
Traceback (most recent call last):
File "/usr/bin/dom0cut_x86.py", line 174, in ?
main()
File "/usr/bin/dom0cut_x86.py", line 165, in main
domextract(outdump, dump, options.xensyms, domid)
File "/usr/bin/dom0cut_x86.py", line 43, in domextract
dom_context = xenimg.get_domain_context(domp)
File "/usr/lib/python2.3/site-packages/xendump/XenImage.py", line
184, in get_domain_context
guest_reg.fromXen(regtxt)
File "/usr/lib/python2.3/site-packages/xendump/Register.py", line
41, in fromXen
return self.fromString(self.xenfmt, self.xenregs, regstring)
File "/usr/lib/python2.3/site-packages/xendump/Register.py", line
28, in fromString
regs = struct.unpack(fmt, regstring)
struct.error: unpack str size does not match format
I checked the size of fmt and regstring. (fmt is
''QQQQQQQQQQQQQQQLLQHHBBBBQQQQQQQ'' in this case.)
struct.calcsize(fmt) was 208. len(regstring) was 200.
The cause of this difference is in the behavior of the struct module
in 64bit environment.
struct.calcsize(''L'') is expected to become 4.
But,struct.calcsize
(''L'') was 8 in my environment.
This difference can be corrected by adding the first character of the
format string.
An attached patch fix this problem.
Hiromichi Ito
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Hello, I''m sorry for delayed reply. I just backed from off. Thank you for your fix. I applied this patch and add ''='' to other format strings which contain ''L'' exclude one case(which need to treat ''int'' variable both in 32 and 64 bit environment) You can get updated tarball from: http://people.valinux.co.jp/~moriwaka/dumpread/dom0cut-0.1.2.tar.gz Thanks, -- Kazuo Moriwaka <moriwaka@valinux.co.jp> From: Hiromichi Itou <ito@begi.net> Subject: dom0cut script patch for x86-64. Date: Fri, 5 Jan 2007 18:53:15 +0900> Hi, > > In my environment (x86-64), the following problem occurred by > executing dom0cut script. > > # dom0cut_x86.py -oDump2006122801 -dvmcore.2006122801 --target=0 -x/ > root/xen-3.0.4-testing.hg/xen/xen-syms -ax86_64 -f > > Traceback (most recent call last): > File "/usr/bin/dom0cut_x86.py", line 174, in ? > main() > File "/usr/bin/dom0cut_x86.py", line 165, in main > domextract(outdump, dump, options.xensyms, domid) > File "/usr/bin/dom0cut_x86.py", line 43, in domextract > dom_context = xenimg.get_domain_context(domp) > File "/usr/lib/python2.3/site-packages/xendump/XenImage.py", line > 184, in get_domain_context > guest_reg.fromXen(regtxt) > File "/usr/lib/python2.3/site-packages/xendump/Register.py", line > 41, in fromXen > return self.fromString(self.xenfmt, self.xenregs, regstring) > File "/usr/lib/python2.3/site-packages/xendump/Register.py", line > 28, in fromString > regs = struct.unpack(fmt, regstring) > struct.error: unpack str size does not match format > > I checked the size of fmt and regstring. (fmt is > ''QQQQQQQQQQQQQQQLLQHHBBBBQQQQQQQ'' in this case.) > struct.calcsize(fmt) was 208. len(regstring) was 200. > > The cause of this difference is in the behavior of the struct module > in 64bit environment. > struct.calcsize(''L'') is expected to become 4. But,struct.calcsize > (''L'') was 8 in my environment. > This difference can be corrected by adding the first character of the > format string. > > An attached patch fix this problem. > > Hiromichi Ito >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hello, I''m sorry for delayed reply. I just backed from off. Thank you for your fix. I applied this patch and add ''='' to other format strings which contain ''L'' exclude one case(which need to treat ''int'' variable both in 32 and 64 bit environment) You can get updated tarball from: http://people.valinux.co.jp/~moriwaka/dumpread/dom0cut-0.1.2.tar.gz Thanks, -- Kazuo Moriwaka On 1/5/07, Hiromichi Itou <ito@begi.net> wrote:> Hi, > > In my environment (x86-64), the following problem occurred by > executing dom0cut script. > > # dom0cut_x86.py -oDump2006122801 -dvmcore.2006122801 --target=0 -x/ > root/xen-3.0.4-testing.hg/xen/xen-syms -ax86_64 -f > > Traceback (most recent call last): > File "/usr/bin/dom0cut_x86.py", line 174, in ? > main() > File "/usr/bin/dom0cut_x86.py", line 165, in main > domextract(outdump, dump, options.xensyms, domid) > File "/usr/bin/dom0cut_x86.py", line 43, in domextract > dom_context = xenimg.get_domain_context(domp) > File "/usr/lib/python2.3/site-packages/xendump/XenImage.py", line > 184, in get_domain_context > guest_reg.fromXen(regtxt) > File "/usr/lib/python2.3/site-packages/xendump/Register.py", line > 41, in fromXen > return self.fromString(self.xenfmt, self.xenregs, regstring) > File "/usr/lib/python2.3/site-packages/xendump/Register.py", line > 28, in fromString > regs = struct.unpack(fmt, regstring) > struct.error: unpack str size does not match format > > I checked the size of fmt and regstring. (fmt is > ''QQQQQQQQQQQQQQQLLQHHBBBBQQQQQQQ'' in this case.) > struct.calcsize(fmt) was 208. len(regstring) was 200. > > The cause of this difference is in the behavior of the struct module > in 64bit environment. > struct.calcsize(''L'') is expected to become 4. But,struct.calcsize > (''L'') was 8 in my environment. > This difference can be corrected by adding the first character of the > format string. > > An attached patch fix this problem. > > Hiromichi Ito > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel