C++ :: Reads Process And Return Values From It - Application Crashes Because Of Buffer Size
Nov 11, 2014
I have an application that reads a process and return values from it. The problem it works fine with small processes but i have some processes that are about 1GB or even 2GB and when i try to read such big processes the application crashes. I'm trying to find a way to read the process memory in chunks of maximum 10 MB. The read code looks like:
Code:
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, entry.th32ProcessID);
unsigned char *p = NULL;
MEMORY_BASIC_INFORMATION info;
for (p = NULL; VirtualQueryEx(hProcess, p, &info, sizeof(info)) == sizeof(info); p += info.RegionSize)
[Code] ....
This reads the info.regionsize which can be as large as 100 MB. Is there any way to read it in chunks ?
View 12 Replies
ADVERTISEMENT
Jun 30, 2013
I randomly get this when I execute my program. Sometimes it happens three times in a row sometimes it can go about 10 times before it shows up again.
I was not able to find out what the error code means, and I can't pinpoint the error. During debugging it NEVER happens, and logging tells me it happens between two cout << operations.
what the error code means?
View 12 Replies
View Related
May 6, 2014
Currently I'm working on a application which reads the input from the server and write to a file. Message stored in server : idle_message="维杰PC时钟" key_prompt="在按键"
Server will send a xml reply with encode type as "UTF-8". In my code I'm store in a char array. [ char * ch = "idle_message="缁存澃PC鏃堕挓" key_prompt="鍦ㄦ寜閿" msg came from server and copied from vs2005 watch point] After this I'm writing the same to a file in my desk using the API WriteFile. When i open the file in Editplus below is the content.
idle_message="维杰PC时钟" key_prompt="在按键" Again I'm trying to read the file and storing into the char array. Below is the content viewed by the watchpoint in VS2005.
idle_message="缁存澃PC鏃堕挓" key_prompt="鍦ㄦ寜閿? I'm trying to find the starting and ending chinese char and I'm converting that char to wchar_t using the API mcstowcs() for display, its coming as completely junk chars.
I can able to every place the chinese char are different. how to overcome this problem.
View 6 Replies
View Related
Dec 15, 2012
The application that I ported from 32 bit linux to 64 bit linux is crashing due to unknown memory corruption Also some time teh address is printed in 32 bit only as below
this=0x6787e0
any reason why this is happening?
View 1 Replies
View Related
Jul 3, 2013
I'm attempting to save values from a char buffer into integer values of a struct.
This is what resides in the buffer "STD 2 2 2 2 2 2 2 " and this is my sscanf call
Code:
sscanf(buffer, "STD %d %d %d %d %d %d %d
", &dt_struct.date,
&dt_struct.mth,
&dt_struct.year,
&dt_struct.dow,
&dt_struct.hr,
&dt_struct.min,
&dt_struct.sec);
I then print the values back out in a string using sprintf.
Code:
sprintf(t_string, "STD %d %d %d %d %d %d %d
", dt_struct.date,
dt_struct.mth,
dt_struct.year,
dt_struct.dow,
dt_struct.hr,
dt_struct.min,
dt_struct.sec);
But this is what I get:
STD 0 0 2 0 0 0 2
Instead of what I want:
STD 2 2 2 2 2 2 2
View 7 Replies
View Related
Dec 17, 2014
get some opinions on, or established methods on how your buffer size should be decided.
View 2 Replies
View Related
Oct 26, 2013
I'm creating a small command line game in C. I have never done anything cross platforms, but this is small enough (so far) that it might not be too bad.
When I am done, I'm not sure how it will be distributed: Either I will just send people the C files and say "compile on your system with these options", or I will just have executables for various systems. Probably Windows 7/8, Ubuntu, CentOS, and whatever I can find to test on.
I right now I'm testing/developing on Windows 7 using MinGW. So my questions are: while I'm developing, how should I be compiling/testing it?
View 4 Replies
View Related
Dec 9, 2014
I use new to allocate a buffer, as follows:
BYTE *p;
p = new BYTE[20];
If I do NOT store the size of the allocated buffer, how to determine the buffer size via p only?
View 6 Replies
View Related
Sep 26, 2014
I started to write a program that repeatedly reads in values for a,b and c and find the root of the polynomial
ax^2 + bx + c = 0
The program should print out for example:
two complex roots: root1 = -1.00000 + i*1.41421
root2 = -1.00000 - i*1.41421
My code:
#include <stdio.h>
#include <math.h>
int main(void){
int a,b,c;
printf("Choose the values of a, b and c for the equation ax^2 + bx + c");
scanf("%d%d%d
",a,b,c);
[code].....
View 6 Replies
View Related
Sep 17, 2013
My code is compiling successfully but immediately after that I'm getting the message "Process exited with return value 3221225725".
The code is working fine in ideone.
What should I do?
View 5 Replies
View Related
Dec 22, 2012
I am making an application that processes multiple files (typically > 500) through a command prompt call. The way I start the command prompt app is by looping using a call to CreateProcess for each file that is to be processed. It works fine, except that I somehow loose 'connection' to my app so that
1: Windows says that the app. is 'Not Responding'
2: The Cprogress bar in my app is not updated before all files have been processed, even though there is a CreateProcess call and a Cprogress.StepIt() from the app for each file that needs processing.
I somehow suspect that the CPU gets swamped... I do not want that Windows starts to say that my app is 'not responding' and I want my Cprogress dialog bar to update according to the number of files that are progressed through.
I wonder if multithreading is the OK way to go instead of just kicking of series of CreateProcess calls? Maybe my CreateProcess is not ending correctly? It seems as if my app is 'not regaining control' before very late. The app never crashes though.
My CreateProcess code is listed below, maybe there can be a problem with it, or maybe I should do things in a different way? My app basicaly works as it never crashes, but with above mentioned problems it is NOT a pro solution...
void CMultiFilerDlg::ProcessFile(CString pdfFile) {
int i=0;
DWORD ProcID;
// Open file in text mode:
STARTUPINFO si;
PROCESS_INFORMATION pi;
char cmdArgs[2052];
[Code] .....
View 6 Replies
View Related
Jun 21, 2013
Why the size of a process grows larger in size for lots of small memory allocations. For example, say I have this struct, which is 16 bytes (for a 32 bit build):
Code:
struct Person {
int iID;
int iAge;
char * pForeName;
char * pSurName;
};
If I allocate memory like this:
Code:
LPBYTE lpB = new BYTE[sizeof(Person) * 1000000];
Then my process grows to 16,48KB in size, which is what I expected. However if I allocate memory like this:
Code:
Person * lpPerson;
for(int i = 0; i < 1000000; ++i)
lpPerson = new Person;
Then the process grows to 78,656KB, which I don't understand.
Additionally, I was surprised to find a vector acts more similarly to the first example. This code:
Code:
Person temp = { 0 };
std::vector<Person> people;
for(int i = 0; i < 1000000; ++i)
people.push_back(temp);
Only increases the process memory to 16,892.
View 5 Replies
View Related
Nov 5, 2014
I was given an assignment where I have to input two points (four integers) on a Cartesian plane from a file and then process it using functions. My professor is very particular so the comments are a bit excessive, but here's what I have.
double radiusFn(double, double, double, double);//4 double values, one for each point. All points are needed for the calculation of distance in this function.
double diameterFn(double);//Only uses one double value - the radius. Both functions below use the same value.
double circumferenceFn(double);
double areaFn(double);
int main() {
[code].....
The file reads:
Quote
1 2 3 4 5 6 7 8 9 10 11 12
View 2 Replies
View Related
Feb 25, 2013
What is the efficiency of the two assignments (line 1 and 2), i.e. (function calls, number of copies made, etc), also the Big O notation. I know there are function calls for retrieving the size of each string in order to produce a new buffer for the concatenated string...any difference between line 1 and 2 in terms of efficiency?
String s("Hello");
String t("There");
1. s = s + t;
2. s += t;
View 3 Replies
View Related
Nov 24, 2013
I am trying to create a flexible interface for my CL application. And what i have is this :
Code:
using namespace std;
// iplcp -i queryFile -d databaseFile
template <typename INT, typename CHARA>
class API {
vector<string> files;
vector<INT> flags;
[Code] ....
and in main :
int main(int argc, char **argv){
//set variables
API<int, char**>args(argc,argv);
cout << "In file: "<< args.GetOpt("i") << " Db file: " << args.GetOpt("h") << endl;
}
// first thing to be printed should be string and the second int
I know this is not probably the best way to but i am laying around and was curious if something like this could work . Are there any good C++ templates for CLI applications from which i could learn?
View 7 Replies
View Related
Nov 30, 2014
I have this piece of code from the book "Modern C++ Design" that checks for compile-time error. When i tried to compile it, i get the error "invalid application of size of to function type". How to make this compiler-time checker work?
Code:
template<bool> struct CompileTimeChecker{
CompileTimeChecker(...);
};
template<> struct CompileTimeChecker<false> {};
[Code] .....
View 4 Replies
View Related
Feb 24, 2012
Where i can get ready function, which return string, which describe size of file?
For example
4 = 4 b
1045 = 1,01 Kb
and etc.
View 3 Replies
View Related
Nov 10, 2014
The problem is with that a. What is it, a pointer? What's the difference between the a in the main function and the a in the function?
#include <iostream>
#include "Header.h"
using namespace std;
short int capacity(int* a) {
int capacity;
[Code] ....
The function it returns i think the size of the pointer instead of returning the size of my array. I don't think i fully understood pointer arithmetic.
View 1 Replies
View Related
Dec 16, 2013
I'm trying to calculate the size of values I've dynamically allocated memory to, i.e.
col_ind = new long[nz];
row_ptr = new long[inrows+1];
val = new double[nz];
from pointers. Now I've created the function,
int getmemsize(int i) {
int sizes[3];
sizes[0] = sizeof val;
sizes[1] = sizeof col_ind;
sizes[2] = sizeof row_ptr;
return sizes[i];
}
but each one is returning just the value 4? My arrays (one example) look like:
val = [ 5 2 5 9 8 3 9 10 9 ]
col_ind = [ 0 1 1 ]
row_ptr = [ 0 2 3 ]
View 6 Replies
View Related
Jul 11, 2012
I'm trying to write a debug functions for my application so I can see all the values I like to. My goal is it looks like this:
Code:
void Debug(std::message, ...)
So that I can call it like this:
Code:
Debug("Error: %i, %i", 34, 35);
How I can work with %i, or if there are better solutions. This is what I've so far (not much), just a basic idea:
Code:
void Debug( std::string message, ...) {
va_list list;
va_start(list, message);
??? va_arg(list, ?? );
va_end(list);
// here message should contain everything and be ready for output ?
cout << message << endl;
}
View 3 Replies
View Related
Jan 24, 2014
I wanted to return a string I can do
Code:
string parseFilename(string fileName){
return fileName.subtr(/*blah*/);
}
Can I also use pointers/references here though? When would you use a pointer and when just a return statement?
View 2 Replies
View Related
Mar 6, 2015
Here is the part of my code that I need to return two values. I am working on a roulette program and I need to return the choice and the number they are betting on. How can I use a pointer to achieve this?
Code:
int makeBet(char choice, int num){
printf("
What type of bet would you like to place? ");
printf("
Type n for number.
Type e for even/odd.
Type d for dozen.
[Code] ....
View 2 Replies
View Related
Nov 27, 2014
Write a function named cointoss that simulates the tossing of a coin.
When you call the function, it should generate a random number in the range of 1 through 2.
If the random number is 1, the function should display "heads".
If the random number is 2, the function should display "tails".
Demonstrate the function in a program that asks the user how many times the coin should be tossed, and then simulates tossing the coin that number of times.
Report the total number of heads and tails.
View 2 Replies
View Related
Feb 5, 2014
You can return values from functions by ref, address or value you can also do this with parameters, so what is the difference, if you have full return of a passed parameter by ref or address why would you need to ever return the function as a whole?
For ex
Code: int nValue(int& y){
y++;
}
or int& nVlaue(int y){
return y;
}
View 1 Replies
View Related
Jun 7, 2013
I've got the program for the most part except one part because it's basically wanting me to return 3 values from a single function and I'm unsure how to do this the way it wants me to. The rules:
Call the user-defined function to read in x in the series to be used for calculating the results. Pass a prompt for x as an input parameter, and return the validated x value to main.
After a valid x has been entered, call the same user defined function a second time, to read in y. Pass the prompt for y as an input parameter, and return the validated number of terms value to main.
After a valid y has been entered, call the same user-defined function a third time, to read in z. Pass the prompt for z as an input parameter, and return the validated z value to main.
View 2 Replies
View Related
Jun 26, 2014
While working on another issue I started memory cleaning and refactoring. While refactoring I decided to create an array Resize Array Reize and Null Count:
Spoiler
public int NullCount(string[,] Original) {
try {
int returnInt =0;
for(int x =0; x<= Original.GetUpperBound(0);x++) {
if (Original[x,0]==null )
{returnInt++;}
[code]......
View 6 Replies
View Related