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