Atomic reads and writes to memory

In Solaris 10 running on x86 64bit processor are reads/writes of an int variable (written in C compiled with gcc) atomic operations? I have read on various forums that memory reads and writes of primitives are atomic but there are people who question this statement.
I know there are atomic_ops provided by Solaris 10 for both user space and kernel but I am only interested in ensuring that an update to an int is atomic?

ps10x# cat fred.c
main() {
  int i;
  i=13;
  i=17;
ps10x# gcc -S fred.c
ps10x# cat fred.s
        .file   "fred.c"
        .text
.globl main
        .type   main, @function
main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        subl    $20, %esp
        movl    $13, -8(%ebp)
        movl    $17, -8(%ebp)
        addl    $20, %esp
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret
        .size   main, .-main
        .ident  "GCC: (GNU) 4.3.4"So it seems pretty clear that setting a variable is "movl $13, -8(%ebp)"
and while I'm no expert on x86 assembler, I'm fairly sure a single movl instruction is atomic.
However, the real issue is that the compiler might decide to stash a temporary copy of the variable in a register.
And that could throw off the "atomic" nature of things.
I believe that the volatile keyword is supposed to help prevent those kinds of issues.

Similar Messages

  • Best Practice to Atomic Read and Write a Field In Database

    I am from Java Desktop Application background. May I know what is the best practice in J2EE, to atomic read and write a field in database. Currently, here is what I did
    // In Servlet.
    synchronized(private_static_final_object)
        int counter = read_counter_from_database();
        counter++;
        write_counter_back_to_database(counter);
    }However, I suspect the above method will work all the time.
    As my observation is that, if I have several web request at the same time, I am executing code within single instance of servlet, using different thread. The above method shall work, as different thread web request, are all referring to same "private_static_final_object"
    However, my guess is "single instance of servlet" is not guarantee. As after some time span, the previous instance of servlet may destroy, with another new instance of servlet being created.
    I also came across [http://code.google.com/appengine/docs/java/datastore/transactions.html|http://code.google.com/appengine/docs/java/datastore/transactions.html] in JDO. I am not sure whether they are going to solve the problem.
    // In Servlet.
    Transaction tx = pm.currentTransaction();
    tx.begin();
        int counter = read_counter_from_database();  // Line 1
        counter++;                                                  // Line 2
        write_counter_back_to_database(counter);    // Line 3
    tx.commit();Is the code guarantee only when Thread A finish execute Line 1 till Line 3 atomically, only Thread B can continue to execute Line 1 till Line 3 atomically?
    As I do not wish the following situation happen.
    (1) Thread A read counter from Database as 0
    (2) Thread A increment counter to 1
    (3) Thread B read counter from Database as 0
    (4) Thread A write counter as 1 to database
    (5) Thread B increment counter to 1
    (6) Thread B write counter as 1 to database
    What I wish is
    (1) Thread A read counter from Database as 0
    (2) Thread A increment counter to 1
    (4) Thread A write counter as 1 to database
    (3) Thread B read counter from Database as 1
    (5) Thread B increment counter to 2
    (6) Thread B write counter as 2 to database
    Thanks you.
    Edited by: yccheok on Oct 27, 2009 8:39 PM

    This is my understanding of the issue (you should research it further on you own to get a better understanding):
    I suggest you use local variables (ie, defined within a function), and keep away from static variables. Those local variables are thread safe. If you call functions within functions, its still thread safe. If you read or write to one record in a database using sql, its thread safe (you dont need a transaction). If you read/write to multiple tables and/or records, you probably need a transaction. Servlets are thread safe. You usually dont need the 'synchronized' word anywhere unless you have a function updating/reading a static variable and therefore want to ensure only one user is accessing the static varible at a time. Also do so if you are writing to some resource (such as a file, a variable in applicaton scope, session scope, or resource that everyone uses such as email server). You dont want more than one person at a time to write to it). Note the database is one of of those resources that is handled by transactions rather than the the synchronized keyword (the synchronized keyword is applied to your application only (not other applications that someone is running), whereas the transaction ensures all applications are locked out while you update those records in the database).
    By the way, if you have a static variable, you should have one and only one function (synchronized) that updates it that everyone uses. If you have more than one synchronized function, that updates it, its probably not thread safe.
    An example of a static variable you would use is a Datasource object (to obtain your database connections). You only need one connection pool in your application and you access it via the datasource variable.
    If you're unsure your code is thread safe, you can create two seperate threads that call the same block of functions repeatedly to ensure it works as expected.

  • Full memory control: how to read and write memory on any address?

    I am programming in Visual Basic Express a long time, and now i want something more. I need to read and write bytes in memory on any possible address, and also to get a handle or first byte's addres of any declared object(Integer, String, Bitmap, ...) and
    to declare an object to some memory addres. Does anybody know some API function (function that copies blocks of memory from one to another place and gives an address of an object) or any other way to do this, and if knows please write an example code that
    CAN be used and it's VALID in Visual Basic 2010 Express or Visual Studio 2013 Express or similar .net basic tools.
    Thanks

    Hello Donaastor,
    the OS might prevent you from writing/reading to "any possible address" because you could read others memory which is not allowed. You will get a security Exception :)
    But of course you can read/write every part of "your" memory. Than you should use Joel's answer.
    © 2015 Thomas Roskop
    Germany // Deutschland

  • MAS and  Attempted to read or write protected memory.

    I'm experiencing an unusual system error using Mobile Application Studio enviroment (CRM Release 2007 / 5.0 SP 09).  As soon as I run the MAS, open a Change List and say edit a tile, tileset etc... the application crashes and the system displays a dialog box with the error message:
    "Attempted to read or write protected memory. This is often an indication that other memory is corrupt".
    How can i resolve this issue in our mobile application studio?
    Thanks in advance
    Eddie

    Hello Eddie
    The mentioned error is generic and could be because of several reasons.
    If you try to edit any BOL Object designers or Code windows from MAS Startup Page/Find Results window throws an error u201CAttempted to Read or write protected memory. This is often an indication that other memory is corrupt", So it is always recommended to expand the Business Library node manually after opening the MAS and continue with other Modeling/Development tasks.
    But if you are not modifying or editing any of the BOL objects, then it must be becuase of some other reason. In such case, can you please provide more detailed steps for the crash to occur.
    Best Regards
    Shankar

  • Can I save to memory sticks for read and write access?

    I use M.S. Office for Mac to do my admin. I would be very grateful if anyone can help with my queries.
    I want to save work to media that allows me read and write access. Saving to discs (of any type) does not allow any editing.
    1. If I save to a memory stick will I be able to save and update my work when I want to?
    Also;
    2. Would a memory stick have to be formatted with to be suitable for Mac?
    3.If the memory stick can be used for the purpose, I want to encrypt it; how would I do this please?
    4. Would encrypting place a limit on the capacity of the memory stick that can be used, e.g.  I have a choice, including 8Gb and 16Gb.
    5. I have heard that passwords can be created by Mac; what is the method for doing this please?
    Many thanks for in advance.

    There is terminology here I am unfamiliar with. I feel I have embarked upon a complex path.
    I do not know what HFS+ is.
    HFS+ is the Mac OS X file system.  Hierarchical File System Plus (Plus as it used to be HFS, but then they improved it and said +)
    By default a USB flash drive generally comes formatted with FAT (from the Microsoft MS-DOS days, but is a universal format - it might come with FAT32 or exFAT as well - still from Microsoft).  Mac OS X can read/write these, HOWEVER, its FileVault whole disk encryption is only designed to work with HFS+, which is why I mentioned it.
    Applications -> Utilities -> Disk Utility can be used to reformat a disk, USB Flash drive, etc...  NOTE:  reformatting does erase everything on a disk, so keep that in mind.
    What is the difference between File Vault and .dmg in disk utilities?
    FileVault is whole disk encryption.  Everything on the disk is encrypted. and you need to enter the password just to mount the device.
    A .dmg file is a regular file that happens to contain a file system inside of it.  When you double click on the .dmg file, Mac OS X will mount the file system inside as if it was a disk.  If the .dmg file is encrypted, then you will be prompted for the password before Mac OS X will mount it.  A .dmg is just a container for a file system.  Inside that contain is a full file system with files and directories just like any other file system.
    You can create read only .dmg files, you can create read/write, you can create sparse (you declare the maximum side, but the initial size of the .dmg is small and will grow to the maximum size as you add things to the .dmg, you can create encrypted .dmg.
    Since a .dmg is just a file with no special attributes on the outside, it can be copied around.  You can copy it over the network, you can store it in the cloud, you can put it on a USB Flash drive, you can put it on an external disk, etc...
    If the device you put it can be mounted by Mac OS X, then you can double-click on the .dmg and it will mount the file system inside the .dmg and you will be able to access the files in the .dmg
    This even includes USB Flash drives that use the FAT format family.  But you existing external disks can be used for that as well.
    If I used an external hard drive for the purpose I have in mind, would the  disk .dmg utility allow me to access folders and files for editing or should I approach the task in a different way?  I would still wish to encrypt.
    As I said above, the .dmg is a full file system where you can store files and folders inside a .dmg container file.  And you can encrypt the .dmg so it is secure.

  • "Attempted to read or write protected memory" error in loading a report.

    Development Environment
    ===
    Windows XP
    Visual Studio 2008 Pro; with Crystal Reports 2008 for Visual Studio
    TagetCPU: 'AnyCPU'
    VB.net 3.5
    Windows dll
    Crystal Reports Runtime SP2 (12.2.0.290)
    Deployment Environment
    ===
    Windows XP
    .net3.5
    Crystal Reports Runtime SP3 (no be confirmed)
    I have created a windows dll with a form with a reportdocument, that loads a report (CrystalDecisions.CrystalReports.Engine.ReportDocument).
    Then we circle through the report setting every table location to point at a specific ODBC and database.
    The Dll can do this process several hundred reports in a day. However a small number (less than 10) of these have the following error:
    "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
    This is normally occurring when the reportDocument.Load function is called. But also happens when going through the setting of table locations: [myTable.ApplyLogOnInfo(TmpTableLogOnInfo)
    The dll is called via COM interop and so i have checked "Register for COM interop".
    Simon@Sanderson

    1) Get to SP 3:
    for dev computer:
    https://smpdl.sap-ag.de/~sapidp/012002523100007123572010E/cr2008_sp3.exe
    Recompile the app after SP3 is applied.
    for SP3 runtime:
    MSI
    https://smpdl.sap-ag.de/~sapidp/012002523100007123592010E/cr2008sp3_redist.zip
    MSM
    https://smpdl.sap-ag.de/~sapidp/012002523100007123582010E/cr2008sp3_mm.zip
    (You will have to uninstall SP 2 runtime before installing SP 3 runtime)
    2) Do not use "Any CPU". CR2008 is only 32 bit anyhow so use 32 bit.
    3) Make sure you are using .Close and .Dispose once you are done with each report object
    - Ludek

  • AccessViolationException: Attempted to read or write protected memory.

    Hello all.
    The application that I am working on has a Oracle DB 10g and we want to migrate the DB to 11g (11.2.0.2). The client OS is a Windows 7 x64 and the application (which is an x86 app) is a hybrid between .NET and C++(COM components). The .NET part is using ODP.NET components and the C++ part is using ODBC drivers (oraclient 11.2.0.1 - x86 version).
    The problem is that the application works without any problems with the 10g DB but when switching to 11g we get an exception. Basically, we have a try { call COM component } catch(Ex ex) {...} and the Exception ex is a AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. I debugged the C++ part and this strange thing happens: the component opens the connection (using a connection string like this : "driver={Oracle in OraClient}; uid=... pwd=.. "), executes some queries, and on one query (which is the same as the last ones - just some selects), when the data is processed (by data I mean a integer ID), the exception is thrown in .NET code. I was able to enter in afxdb.cpp and it looks like the exception is thrown when GetData method is called. I looked over the ID's from previous queries and the data passed to GetData method is about the same (I mean the fieldtype, index, len, SQL type).
    As solutions I tried:
    -set "Statement Cache Purge=true" => same effect
    - install a instantclient11_2 basic and ODBC drivers (for 11.2.0.2) but I could not connect to the DB (I could find the new drivers in registry WoW64Node/ODBC Drivers, put the location in PATH in front of the other OraClient and replace the OraClient with the name in registry in conn string) => Specified driver could not be loaded due to system error 127.
    - tried to see the Marshal.GetLastWin32Error() => returns 0.
    Any ideas? :D
    Edited by: 917334 on Feb 27, 2012 12:57 PM

    The select clause that causes the problem is actually a select over a view. I replaced the select * from MYView with the actual select clause (with inner join) and the issue disappeared.
    Any ideas? :)
    Solution:
    Looks like the view was written using INNER JOIN stuff. I replaced the code from the view with a simple select like this (inner join free):
    select table1.col1, table2.col2, table3.col2, from table1, table2, table3 where table1.col1 = table2.col1 and table1.col1 = table3.col1
    Some questions still remain (even if my issue is partially solved):
    - why was it working on 10g?
    - why this particular view crashed? (there are other views that use inner join and don't cause this)
    - why was it working when using the full select (with inner join) and not working when selecting over the view?
    Edited by: 917334 on 28.02.2012 08:33

  • Fast way to read and write console

    hi guys
    what's the fastest way to read and write from console?
    For writing I'm using (I think thats the fastest way)
    System.out.println(foo)and I have to read the following - all numbers are ints (that means m + n + 1 lines):
    1 * "<n> <m>"
    n * "<a> <b> <c>"
    m * "<a> <b>"Actual I'm reading (the second line for example) with
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String[] items = br.readLine().split("[^\\-\\.0-9]+");
    Target mainTarget = new Target(Integer.parseInt(items[0]), Integer.parseInt(items[1]), Integer.parseInt(items[2]));
    for (int i = 1; i < m; i++) {
        items = br.readLine().split("[^\\-\\.0-9]+");
        mainTarget.addTarget(Integer.parseInt(items[0]), Integer.parseInt(items[1]), Integer.parseInt(items[2]));
    } But that isn't really fast...
    have you any idea?
    grz faetzminator

    faetzminator wrote:
    right, I have 1 + 1 + 1 =3 up to 10^6-1 + 10^6-1 + 1 =2*10^6-1 input lines with max 4999997 integers (and I have to store 2999999 of them)
    ok, if that is the fastest way... (maybe the reading of the input file is so slow; I run eg "java Foo < input > output")All those br.readLine calls where you never check if the return is null are dangerous.
    I really don't understand what you are doing. You mentioned System.in at first and now reading from files.
    I also am pretty sure that you are in fact running out of memory.

  • How to increase disk read and write speed after installing new SSD (2009 Macbook Pro)? Why not as fast as advertised?

    Hi everyone,
    I just installed a Crucial MX10512 GB SSD into my 2009 Macbook Pro. It's definitely much faster, but the read and write disk speed is around 200 Mb/s for both versus the 300-500 Mb/s that the SSD advertised. Any ideas as to why? And is there anything I can do to make it faster? Before I installed it, it was between 80-90 Mb/s.
    Specs:
    - currently have about 460 of 511 GB of storage available
    - am using 2GB of memory
    - running on 10.10.2 Yosemite
    Thanks!

    nataliemint wrote:
    Drew, forgive me for being so computer-incompetent but how would I boot from another OS? And shouldn't I be checking the read speeds on my current OS (Yosemite) anyways because I want to know how the SSD is performing on the OS I use? And finally, what kind of resources would it be using that would be slowing down my SSD?
    Sorry for all the questions - I'm not a Macbook wiz by any means!
    You could make a clone of your internal OS onto an external disk. Hopefully you already have a backup of some form
    A clone is a full copy, so you can boot from it. It makes a good backup as well as being useful to test things like this.
    Carbon Copy Cloner will make one or you can use Disk Utility to 'restore' your OS from the internal disk to an external one.
    Ideally the external disk is a fast disk with a fast 'interface' like Thunderbolt, Firewire 800 or USB3. USB2 can work, but it is slow & may effect the test.
    You connect the clone, hold alt at startup & select the external disk in the 'boot manager'. When the Mac is finished booting run the speed tester.
    Maybe this one…
    https://itunes.apple.com/gb/app/blackmagic-disk-speed-test/id425264550
    Test the internal & compare to the previous tests
    A running OS will do the following on it's boot disk…
    Write/ read cache files from running apps
    Write/ read memory to disk if memory is running low
    Index new files if content is changing or being updated
    Copy files for backing up (Time Machine or any other scheduled tasks)
    Networking can also trigger read/ write on the disk too.
    You may not have much activity that effects a disk speed test, but you can't really be sure unless that disk is not being used for other tasks.
    Disk testing is an art & science in itself, see this if you want to get an idea …
    http://macperformanceguide.com/topics/topic-Storage.html
    Simply knowing that it's about twice the speed would be enough to cheer me up

  • Help ,ImageIO exception to read and write

    Hi,
    I'm dynamically creating image files through screens utility of java(prog name:- Test_ScreenShot.java) and saving
    them in memory sequentially(pic0.jpg,pic1.jpg....etc).Simultaneously I'm accessing the saved files from another
    independent application(Prog name:- Test_Main.java) through piping(executing the application like this "Java
    Test_Screens|Java Test_Main").The application is in infinite loop.I'm using Version JDK 1.5
    I use java Image to read and write image:-
    My application was running well for days.But now I'm getting sudden exceptions.
    I got an exception while trying to save an dynamically generated image file in the local memory using the Image
    class.In brief I'm getting exactly 3 types of exceptions:-
    1)java.io.FileNotFoundException: pic5.jpg (Access is denied)
    2)"Exception in thread "main" java.lang.NullPointerException
    3)Exception in thread "main" com.sun.image.codec.jpeg.ImageFormatException: Not a JPEG file: starts with 0xff 0xd9
    Here is the code snippent I wrote:
    /* Robot robot = new Robot();
    BufferedImage image = robot.createScreenCapture(screenRect);
    // save captured image to jpg file
    ImageIO.write(image, "jpg", new File(outFileName));*/
    And here is the exception I am finding (I never found this before, I executed the code many times )
    =====================================================================================================================
    1)Exception Type 1:-
    java.io.FileNotFoundException: pic5.jpg (Access is denied)
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
    at javax.imageio.stream.FileImageOutputStream.<init>(FileImageOutputStream.java:44)
    at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(FileImageOutputStreamSpi.java:37)
    at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:391)
    at javax.imageio.ImageIO.write(ImageIO.java:1483)
    at Test_ScreenShot.main(Test_ScreenShot.java:112)
    at Test_Main.main(Test_Main.java:466)
    at Test_ScreenShot.main(Test_ScreenShot.java:129)
    2)Exception Type 2:-
    "Exception in thread "main" java.lang.NullPointerException
    at Picture.width(Picture.java:84)
    at Test_Edge_Detector.not_main(Test_Edge_Detector.java:38)
    at Test_Main.main(Test_Main.java:88)"
    ============================================================================================
    Now I tried the following as alternative of ImageIO(from jdk 1.2)
    to read image:-
    FileInputStream fis = new FileInputStream(file);
    JPEGImageDecoder jpeg = JPEGCodec.createJPEGDecoder(fis);
    jpeg.decodeAsBufferedImage();
    fis.close();
    But after running a long time suddenly its giving following exceptions:-
    ==============================================================================================
    Exception Type 3:- )
    Exception in thread "main" com.sun.image.codec.jpeg.ImageFormatException: Not a JPEG file: starts with 0xff 0xd9
    at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)
    at sun.awt.image.codec.JPEGImageDecoderImpl.decodeAsBufferedImage(Unknown Source)
    Exception Type 4:- )
    javax.imageio.IIOException: Not a JPEG file: starts with 0xff 0xd9
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
    at javax.imageio.ImageIO.read(Unknown Source)
    at javax.imageio.ImageIO.read(Unknown Source)
    at Picture.<init>(Picture.java:22)
    at Test_Edge_Detector.not_main(Test_Edge_Detector.java:37)
    at Test_Main.main(Test_Main.java:88)
    Exception in thread "main" java.lang.RuntimeException: Could not open file: pic45.jpg
    at Picture.<init>(Picture.java:27)
    at Test_Edge_Detector.not_main(Test_Edge_Detector.java:37)
    at Test_Main.main(Test_Main.java:88)
    My question is:-
    1)Where is the actual problem?Is it any kind of bug?
    2)I'm using the concept of piping recently to execute the application.Can it be the cause?
         When I googled I found the following informations.There is a bug in ImageIO while trying to write image file.But
    I'm not sure about that it will be relevent here :-
    1)from sun's bug database:-
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6247985
    2)from SUN Developer Forums
    http://forum.java.sun.com/thread.jspa?threadID=768917&messageID=4382833
    3)from Java.NET forum(here they r getting the bug while they r using createScreenCapture() method of robot class,I am
    also using that in my code)
    http://forums.java.net/jive/thread.jspa?messageID=123247
    4)from SUN's archieve
    http://archives.java.sun.com/cgi-bin/wa?A2=ind0207&L=java-imageio-interest&D=0&P=1483
    5)Here is the actual implemetation of ImageIO class.I'm getting error at 391 no. line.
    http://kickjava.com/src/javax/imageio/ImageIO.java.htm
    Thanks And Regards
    Subhadip

    Hello,
    I am writng to ask a doubt I have been encountered. I have an array of Image URL's and I am downloading the images using thses URL for each index. The example for an image URL will be as follows:
    http://www.firstmonday.org/issues/issue6_10/wiggins/google-3oct2001.gifIf the URL is abroken link, I am getting the exception. But if the URL is somewhat hanging (which means when u open that URL in IE or Mozilla, the statuc bar for downloading the image will be hanging).
    So i want to set a timer for every link while downloading. may be 10min. My idea is if in that 10min, if code does not completes downloading the images, then ignore that link and proceed furthur.
    Can u please tell me how to write this.. Please tell me any other idea to tackle this problem.
    Thank you,
    Chaitanya

  • Attempted to read or write protected memory error

    Hello,
    I am using the .Net library and occasionally I get a System.AccessViolationException,"Attempted to read or write protected memory. This is often an indication that other memory is corrupt." Currently it is occurring when trying to initialize a TypedTPINIT object (this has happened in other places before and we just retry the request as a work-around). I set the size equal to the password length + 2 and the constructor for TypedTPINIT throws the exception after making the call to tpaloc. I have code that catches the exception and tries again up to 5 times before bubbling the exception up the chain. Once this exception occurs, no calls can be made to tux, they all throw the same exception. Once the application is closed and restarted (restarting the win32 process), everything works fine with the same data. It will work for a day or two and then fowl up again, seemingly at random. I am unable to reproduce the error at will, we just see it popup now and again, but closing the process and restarting it makes it go away for a while.
    Any idea why this exception is happening?
    I tried taking the .Net library out of the question and make the call to tpalloc myself using p/invoke and the same thing happens, but not every time.
    I appreciate any help you can provide.
    ~Jason

    Hi Jason,
    I would suggest using a memory access checking tool like bounds checker, electric fence, or the like, although I don't know what's available in a .NET environment.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Attempted to read or write protected memory error on reportdocument.load

    Reportdocument.load causes "System.AccessViolationException: Attempted to read or write protected memory" error.
    The error is not consistent. Sometimes a report will print. Sometimes a report will error.
    I am at a loss as to what to try.
    I have uninstall the app, reinstalled the app, uninstall and reinstalled .NET frameworks, Visual C++ runtime, etc.,
    reworked the code to try to capture the error. Nothing helps. Application crashes with Unhandled exception.
    Attempted to read or write to protected memory.
    Has anyone been able to resolve this issue?

    Hi Mary,
    What happens if you set your project to use 4.0 framework?
    Anything else in the Event Viewer to show an access violation?
    Have you tried updating the printer driver to one that is supported in the Framework? I find most legacy printers tend to use the old DEVMODE structure and not the Framework. Try using the printer off the Window CD rather than the Manufacturers driver.
    Is your app doing "Report Bursting"? In other words sending multiple reports one right after the other with no time between?
    Are you using any legacy UFL's? Try renaming u2lcom.dll if you are not using them. If you do you'll get an error in formula.
    Are you using try/catch in your code around each CR API? It may catch something more for you also.
    AND, can you try a C# project, some thing very simple also. I've of issues in VS VB that do not show up in other dev languages. Neither Microsoft or SAP can figure out what the cause is.
    Thank you
    Don
    Edited by: Don Williams on Feb 11, 2011 2:34 PM

  • Attempted to read or write protected memory source CR for VS 2010

    Hye everyone,
    I'm working on VS2010 : C# Application WPF.
    When I try to instance a Crystal Report, I receive this message
    CrystalReport2 newCR = new CrystalReport2();
    Attempted to read or write protected memory.
    source=crystaldecisions.crystalreports.engine
    at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
       at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
       at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
       at CrystalDecisions.CrystalReports.Engine.ReportClass..ctor()
    When I'm debugging I can see the report but when I stop the application I've got a "vshost32.exe has stopped working"
    If I use the exe file of my application, I can't see the report and I've got a "MyApplication has stopped working". He never enters the constructor of my report.
    For my report I use .net objects for Database Fields
    Please help needed
    Gridin

    See the WPF demo here:
    http://www.sdn.sap.com/irj/scn/elearn?rid=/library/uuid/a09f7025-0629-2d10-d7ae-df006a51d1a8
    Do you get the same issue using the steps described in the demo?
    Also, see the kBase [1544651  - Crystal Reports WPF Viewer fails with NullReferenceException when used in a WinForms application|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bi/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333533343334333633353331%7D.do].
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • Attempted to read or write protected memory

    Imports Axzkemkeeper
    Imports zkemkeeper
    Public Class Form11
    Dim q As New Axzkemkeeper.AxCZKEM
    Dim con As Boolean = False
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Try
    ' q.CreateControl()
    ' con = q.Connect_Net("192.168.0.202", CInt(4370))
    ' If con Then
    ' MsgBox("yes")
    ' Else
    ' MsgBox("fuck!")
    ' End If
    'Catch ex As Exception
    ' MsgBox(ex.Message)
    'End Try
    q.CreateControl()
    'q.SkinAllThreads()
    con = q.Connect_Net("192.168.0.202", CInt(4370))
    If con Then
    MsgBox("yes")
    Else
    MsgBox("oh shoot!")
    End If
    End Sub
    End Class
    i try to connect biometric device from vb using axzkemkeeper.dll but i comes with error:
    An unhandled exception of type 'System.AccessViolationException' occurred in AxInterop.zkemkeeper.dll
    Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
    i really thanksful with any advice you give....
    best regards...
    Exception is:
    An unhandled exception of type 'System.AccessViolationException' occurred in AxInterop.zkemkeeper.dll  Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

    Please refrain from the profanity.
    The problem appears to be from inside Axzkemkeeper.AxCZKEM. Whatever that is... I am unable to help with the code you provided.
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.

  • Attempt to read or write protected memory VS 2010

    I can't run orr debug my program anymore. The message attempt to read or write protected memory. Other 2012 has no problems.
    Rinaldo
    Full of ideas but don&#39;t know how. Coding for fun.
    System.AccessViolationException was unhandled
      HResult=-2147467261
      Message=Poging tot het lezen of schrijven van beveiligd geheugen. Dit duidt er vaak op dat ander geheugen is beschadigd.
      Source=mscorlib
      StackTrace:
           bij System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           bij System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           bij System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           bij Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           bij System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           bij System.Threading.ThreadHelper.ThreadStart()
      InnerException:

    For the VS 2010 project if the .exe inside the debug folder (unless you are compiling for release then the release folder) is executed outside of VS 2010 does the same issue occur?
    Also VS 2010 I believe required some updates. Perhaps this tool
    VersionInfo (Version information about your Visual Studio 2010 installation, and how to keep it updated to the latest) could provide if there are any issues with your VS 2010.
    On the other hand what originally occured with this project? It was created on VS 2010 and never worked then a copy of it was used with VS 2012 and all the sudden it worked? Or for some reason on VS 2010 it was working then one day suddenly memory issues
    began occuring?
    If the "one day suddenly memory issues began occuring" was the issue then that would be the day to get assistance. As anything could've happened that day that possibly could've been traced rather easily where however much time has gone by now and
    whatever else has been done with that system between then and now may make that extremely difficult to impossible.
    La vida loca

Maybe you are looking for

  • Adobe Creative Suite 5.5 installation

    We would like to install creative suite on a home computer. We purchased it last year for the office and understand that we can have it on an off-site computer as well, but not be able to use them at the same time.

  • Iphone not updating or syncing with PC when on wifi - help?!

    Hi there, I have connected my iphone to my laptop (not a mac). It connects however with the upgrade to the new itunes I can't find out how I can change my playlists on the pc and then update to the phone accordingly. Any tips greatly appreciated! Tha

  • Photoshop Elements 10 working only once

    Something has happened to my Photoshop Elements 10 ... it works once when I first use it .... it will not work the second time. Restarting my computer brings it back. The recently added Win 7 64 bit box "Do you want to run this Program" box does not

  • RFC error sending a table

    People.. please... I am sending one table to one RFC with this code: wdContext.nodeZctftv003_Input().bind( inputSol ); wdContext.nodeT_Saida().bind( new ArrayList() ); wdContext.nodeT_Saida().addElement(  tSaida );      inputSol.modelObject().execute

  • Painting over components

    Hi, I have the following panel which displays a series of labels, however when i try and draw a string onto the panel, all of the components disappear when the string is drawn, can someone please help me. Thanks Cath import javax.swing.*; import java