Windows error 0x000000AC, 172

Detailed Error Information


This is a Blue Screen of Death stop code. More information is available in the Knowledge Base article Bug Check 0xAC: HAL_MEMORY_ALLOCATION.

HRESULT analysis[2]

This is probably not the correct interpretation of this error. The Win32 error above is more likely to indicate the actual problem.

This code indicates success, rather than an error. This may not be the correct interpretation of this code, or possibly the program is handling errors incorrectly.

Reserved (R)false
Reserved (X)false
FacilityCode0 (0x000)
DescriptionThe default facility code.[2][3]
Error Code172 (0x00ac)

Possible solutions


JNI calling Java from C++ with multiple threads


Scroll down to 'Attaching to the VM' in the JNI docs :

The JNI interface pointer (JNIEnv) is valid only in the current thread. Should another thread need to access the Java VM, it must first call AttachCurrentThread() to attach itself to the VM and obtain a JNI interface pointer.

answered on Stack Overflow Aug 5, 2013 by Graham Griffiths • edited Jun 23, 2016 by NuSkooler

g++ symbol versioning. Set it to GCC_3.0 using version 4 of g++


No. They are mean to be incompatible. You have to use a older version of g++.

Also, the different is at and

answered on Stack Overflow Jun 29, 2009 by J-16 SDiZ

C++ Access Violation while calling dll function


If you read e.g. this document on Borland C++ name mangling you might figure out that the symbol name "@Tdtm_Dossier@Logon$qv" represents a non-static member function of the class Tdtm_Dossier. You can't call non-static member function like normal functions, they have a hidden first argument that becomes the this pointer in the member function.

What's happening here is probably that the Logon member function tries to access member variables of the object instance, of which there is none, which leads to undefined behavior and a crash.

To be able to use this library you need the header file and the link library. You can't just call functions (member or not) and hope for the best.


Can we type strings with use of hex codes in c# like we type integers like that int a = 0x0000cd54;?

string str = "\x45 \xac \x1b \5c"

answered on Stack Overflow Dec 5, 2014 by pm100

GNU make 4.2 (and 4.2.1) on windows truncates line in recipe


You should use 4.2.1, it has some important fixes (I doubt it will make a difference for this problem).

As discussed in the comments, using POSIX tools on Windows requires a specialized environment. The normal "shell" on Windows is, which doesn't accept POSIX sh syntax, such as &&. The normal mkdir command on Windows doesn't accept the -p flag; that's a POSIX flag. There is no cp command on Windows.

So it's clear that your makefile is expecting to be run with some sort of POSIX environment.

Based on what you've described above, it's not clear how the problem is related to GNU make directly. GNU make is parsing the makefile and it's invoking the shell and passing along the command line properly: this can be inferred because the shell is running the echo command and running the mkdir command, and even running the cp command.

It's the cp command which is printing the message, not make. I believe you that it works with 3.81, but I suspect a non-obvious difference between the way 3.81 was compiled and the way you're building 4.2. It's even possible that there have been custom patches applied to the 3.81 version you're using, although I don't know.

To debug further I recommend the following:

  • First remove the @ prefix from the recipe line: that's always the number one thing to do; if you can't see how make is invoking the command how can you debug?
  • Then run the same makefile with the two different versions of make, from the same shell/prompt (so the path to make is the only difference). Is there any difference in the printed output? If so what is it?
  • If not, then clearly there's something more mysterious going on. Try to see if maybe the QNX version of make is modifying the environment somehow: you can run the env command in your recipe to see it.

Maybe it's related to the length of the command line? Try temporarily moving some of the json files out of that directory so the command line is shorter.

answered on Stack Overflow Jun 21, 2016 by MadScientist

GNU make 4.2 (and 4.2.1) on windows truncates line in recipe


I asked the mailing list and I have the answer.

To fix it, I had to uncomment the macro BATCH_MODE_ONLY_SHELL in config.h of the make source code.

 * If you have a shell that does not grok 'sh -c quoted-command-line'
 * correctly, you need this setting. Please see below for specific
 * shell support.

Taking quote from reply from mailing list:

What that flag means (as I understand it: I'm not that familiar with this aspect of Windows support) is that make will never try to invoke the shell directly passing the recipe to be run on the command line.

Instead it is being forced to always write the recipe to a temporary file ("batch file") on your disk and invoke the shell such that it runs the recipe in the temporary file.

Apparently your shell is able to read and execute very long command lines from a file, which it cannot successfully process when passed in as arguments, even though these command line arguments are not exceeding Windows limits.

answered on Stack Overflow Jun 23, 2016 by Adrian


Leave a comment

(plain text only)


  3. winerror.h from Windows SDK 10.0.14393.0

User contributions licensed under CC BY-SA 3.0