Skip to content

Instantly share code, notes, and snippets.

@GrmpCerber
Created May 7, 2013 14:21
Show Gist options
  • Save GrmpCerber/5532915 to your computer and use it in GitHub Desktop.
Save GrmpCerber/5532915 to your computer and use it in GitHub Desktop.
Simple code to force Java 1.7.0u21 into debug mode with console dump
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<time.h>
#include<strings.h>
int main(int givenArgc,char *givenArgv[])
{
std::cout<<"step 0.a\n";
char exeFile[] = "c:\\java\\jdk1.7.0_21\\bin\\java.exe";
int prependArgc = 4;
char* prependArgv[] = {
"-Djava.compiler=NONE",
"-Xnoagent",
"-Xdebug",
"-Xrunjdwp:transport=dt_socket,address=2502,server=y,suspend=y"
};
std::cout<<"step 0.b\n";
time_t rawtime;
struct tm * timeinfo;
char date [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (date,80,"%Y%m%d%H%M%S",timeinfo);
std::cout<<"step 0.c\n";
char stderrRedirect[100];
char stdoutRedirect[100];
sprintf(stderrRedirect,"2>d:\\tmp\\%s-stderr.txt",date);
sprintf(stdoutRedirect,">d:\\tmp\\%s-stdout.txt",date);
std::cout<<"step 0.d\n";
int appendArgc = 2;
char* appendArgv[] = {
stderrRedirect,
stdoutRedirect
};
std::cout<<"step 0.e\n";
int argc = prependArgc+givenArgc-1+appendArgc;
char** argv = (char**)malloc(argc*sizeof(char*));
std::cout<<"step 1.a\n";
char** src = prependArgv;
int nbItems = prependArgc;
int j = 0;
for(int i=0;i<nbItems;i++){
argv[j++]=src[i];
}
std::cout<<"step 1.b\n";
src = givenArgv;
nbItems = givenArgc;
for(int i=1;i<nbItems;i++){
argv[j++]=src[i];
}
std::cout<<"step 1.c\n";
src = appendArgv;
nbItems = appendArgc;
for(int i=0;i<nbItems;i++){
argv[j++]=src[i];
}
std::cout<<"step 3\n";
char str[4096];
strcpy(str,exeFile);
std::cout<<"step 4\n";
for(int i =0;i<argc;i++){
strcat (str," ");
strcat (str,argv[i]);
}
std::cout<<"step 5\n";
std::cout<<"will run : ";
std::cout<<str;
std::cout<<"\nstep 6\n";
system(str);
free(argv);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment