Fix how the "cmd" parameter is set in se.py and remove hack in x86 process initializa...
authorGabe Black <gblack@eecs.umich.edu>
Thu, 2 Aug 2007 01:19:23 +0000 (18:19 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Thu, 2 Aug 2007 01:19:23 +0000 (18:19 -0700)
--HG--
extra : convert_revision : 1fc741eea956ebfa4cef488eef4333d1f50617a6

configs/example/se.py
src/arch/x86/process.cc

index b294480f64d4bd9f6e5e697414a82c1b949038b8..20fe75a2186db6a2d45d7a3ca83288cb70e5b024 100644 (file)
@@ -64,7 +64,7 @@ if args:
 
 process = LiveProcess()
 process.executable = options.cmd
-process.cmd = options.cmd + " " + options.options
+process.cmd = [options.cmd] + options.options.split()
 if options.input != "":
     process.input = options.input
 
index 17904cb3398b851decfea4c82c66eae267809e12..afe41cdeba3ddd89bee336fc04403145d6f74e5d 100644 (file)
@@ -290,18 +290,19 @@ X86LiveProcess::argsInit(int intSize, int pageSize)
 
     //This is the name of the file which is present on the initial stack
     //It's purpose is to let the user space linker examine the original file.
-    int file_name_size = filename.size();
+    int file_name_size = filename.size() + 1;
 
     string platform = "x86_64";
     int aux_data_size = platform.size() + 1;
 
     int env_data_size = 0;
     for (int i = 0; i < envp.size(); ++i) {
-        env_data_size += envp[i].size();
+        env_data_size += envp[i].size() + 1;
     }
     int arg_data_size = 0;
     for (int i = 0; i < argv.size(); ++i) {
-        arg_data_size += argv[i].size();
+        warn("Argv[%d] size is %d\n", i, argv[i].size() + 1);
+        arg_data_size += argv[i].size() + 1;
     }
 
     //The auxiliary vector data needs to be padded so it's size is a multiple